Строка на основе BitArray
От: Эйнсток Файр Мухосранск Странный реагент
Дата: 09.05.18 04:55
Оценка:
Русские символы в Unicode кодируются двумя байтами. Но если составить таблицу символов для некорого текста, может оказаться, что 6-ти или 7-ми битов вполне достаточно для кодирования любого символа этого текста.

Не приходила ли кому идея сделать класс строки на основе BitArray для того, чтобы сэкономить на хранении текстов в памяти?
Отредактировано 09.05.2018 4:56 Эйнсток Файр . Предыдущая версия .
bitarray c# строки экономия память
Re: Строка на основе BitArray
От: Sharowarsheg  
Дата: 09.05.18 04:58
Оценка: +2
Здравствуйте, Эйнсток Файр, Вы писали:

ЭФ>Русские символы в Unicode кодируются двумя байтами. Но если составить таблицу символов для некорого текста, может оказаться, что 6-ти или 7-ми битов вполне достаточно для кодирования любого символа этого текста.


ЭФ>Не приходила ли кому идея сделать класс строки на основе BitArray для того, чтобы сэкономить на хранении текстов в памяти?


Приходила несколько раз за последние 15 лет, никогда не оправдывала себя.
Re[2]: Строка на основе BitArray
От: Эйнсток Файр Мухосранск Странный реагент
Дата: 09.05.18 05:01
Оценка:
S> Приходила несколько раз за последние 15 лет, никогда не оправдывала себя.

А тегирование? Если, допустим, есть много справочников с элементами, но количество элементов в справочнике гораздо меньше 4 миллионов, то для того, чтобы сослаться на элемент справчника не нужен int с 32-мя битами.
Re[3]: Строка на основе BitArray
От: Sharowarsheg  
Дата: 09.05.18 05:04
Оценка:
Здравствуйте, Эйнсток Файр, Вы писали:

S>> Приходила несколько раз за последние 15 лет, никогда не оправдывала себя.


ЭФ>А тегирование? Если, допустим, есть много справочников с элементами, но количество элементов в справочнике гораздо меньше 4 миллионов, то для того, чтобы сослаться на элемент справчника не нужен int с 32-мя битами.


Если количество элементов гораздо меньше 4 миллионов, то не имеет смысла экономить память ценой лишней сложности. Если количество элементов в справочнике меряется сотнями миллионов, там возникают другие проблемы.
Отредактировано 09.05.2018 5:05 Sharowarsheg . Предыдущая версия .
Re: Строка на основе BitArray
От: kov_serg Россия  
Дата: 09.05.18 07:24
Оценка:
Здравствуйте, Эйнсток Файр, Вы писали:

ЭФ>Не приходила ли кому идея сделать класс строки на основе BitArray для того, чтобы сэкономить на хранении текстов в памяти?

Если сжимать то одного бита на букву в среднем может хватать. Тут вопрос в накладных расходах.
Re[3]: Строка на основе BitArray
От: Kolesiki  
Дата: 11.05.18 11:19
Оценка:
Здравствуйте, Эйнсток Файр, Вы писали:

ЭФ>для того, чтобы сослаться на элемент справчника не нужен int с 32-мя битами.


Как раз нужен. Называется hash
Re: Строка на основе BitArray
От: pagid Россия  
Дата: 11.05.18 11:31
Оценка:
Здравствуйте, Эйнсток Файр, Вы писали:

Еще Дэвиду Хаффману пришла. Не именно в BitArray конечно. Вопрос в уместности и смысле в каждом конкретном случае, для обработки в ОЗУ это скорее всего окажется вредным, чем полезным.
Хотя возможно в каких-то частных и довольно редких случаях использование 8-ми битной кодировки вместо 16-и возможно и имело бы смысл.
Re: Строка на основе BitArray
От: LWhisper  
Дата: 15.05.18 10:01
Оценка: 3 (1) +1
Здравствуйте, Эйнсток Файр, Вы писали:

ЭФ>Не приходила ли кому идея сделать класс строки на основе BitArray для того, чтобы сэкономить на хранении текстов в памяти?


Это называется UTF8.
В данный момент вовсю идёт реализация UTF8-литералов.
Ждём C#8.
Re: Строка на основе BitArray
От: Qulac Россия  
Дата: 15.05.18 10:13
Оценка:
Здравствуйте, Эйнсток Файр, Вы писали:

ЭФ>Русские символы в Unicode кодируются двумя байтами. Но если составить таблицу символов для некорого текста, может оказаться, что 6-ти или 7-ми битов вполне достаточно для кодирования любого символа этого текста.


ЭФ>Не приходила ли кому идея сделать класс строки на основе BitArray для того, чтобы сэкономить на хранении текстов в памяти?


Раньше 5 битами обходились: Код Бодо
Программа – это мысли спрессованные в код
Re[2]: Строка на основе BitArray
От: VladD2 Российская Империя www.nemerle.org
Дата: 31.05.18 00:04
Оценка:
Здравствуйте, LWhisper, Вы писали:

LW>Это называется UTF8.


Ну, скорее кои-7.

LW>В данный момент вовсю идёт реализация UTF8-литералов.


Зачем?
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[2]: Строка на основе BitArray
От: VladD2 Российская Империя www.nemerle.org
Дата: 31.05.18 00:08
Оценка:
Здравствуйте, Qulac, Вы писали:

Q>Раньше 5 битами обходились: Код Бодо


Я как-то раньше и не задумывался, что азбука морзе это разновидность двоичного кода.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re: Строка на основе BitArray
От: anton_t Россия  
Дата: 09.06.18 18:04
Оценка:
Здравствуйте, Эйнсток Файр, Вы писали:

ЭФ>Русские символы в Unicode кодируются двумя байтами. Но если составить таблицу символов для некорого текста, может оказаться, что 6-ти или 7-ми битов вполне достаточно для кодирования любого символа этого текста.


ЭФ>Не приходила ли кому идея сделать класс строки на основе BitArray для того, чтобы сэкономить на хранении текстов в памяти?


Приходила. В Java начиная с 9й версии строка хранит символы в виде массива однобайтных элементов, если все символы в ASCII влазят и в виде двубайтных в противном случае.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.