From: Sergey Matveev Date: Wed, 17 Jul 2024 15:58:09 +0000 (+0300) Subject: Немецкие строки X-Git-Url: http://www.git.stargrave.org/?a=commitdiff_plain;h=0de9685e0fa681be50a28978292319594d97d5c1;p=stargrave-blog.git Немецкие строки https://cedardb.com/blog/german_strings/ Некоторые DB-related решения используют "German-style" строки. В противовес Си-шным (которые типа аналогичны Go-шным slice-ам), в которых 64-бит идёт на длину, 64-бит на ёмкость, 64-бит указатель на содержимое. Но во многих задачах строки не часто меняются, как правило они immutable. Частенько они довольно короткие (считанные байты). Нередко нужно прочитать только их начало (префикс): сравнение строк, лексикографическая сортировка, и т.д.. Предлагают такой вариант: 128-бит структура, в которой 32-бита отводят под хранение длины, а в оставшемся месте или вся строка целиком (если она не длиннее 12 байт). В противном случае, идёт 32-бит префикс строки, а дальше указатель на содержимое. ---