Re[16]: [performance] чего-то я не понимаю в этой жизни
От: rudzuk  
Дата: 02.07.22 18:00
Оценка: +1 -2
Здравствуйте, Videoman, Вы писали:

V> О каких проверках речь? На практике в 90% случаем обработка UTF-8 строк почти не отличается от таковой же в ASCII. Если мы итерируемся именно по символам, то символы в Юникоде в общем виде могут занимать несколько кодпоинтов, идти справа на лево, даже в UTF-32, так что не надо упрощать.


Итеририровать кодпоинты. В utf-8 четыре проверки, в utf-16 — одна. Вопрос нормализации выносим за скобки т.к. он существует вне зависимости от кодировки.

V> R>2. Все что за пределами ascii кодируется, либо тем же количеством байт, что и в UTF-16, либо большим.


V> Зависит от данных и статистики. На практике, многие многих форматы (Code, JSON, XML и т.д.) и наиболее распространенные языки будут занимать меньше.


Я вроде согласился, что как кодировка для сериализации utf-8 удобна, но мы говорим о хранении и обработке строк. При хранении той же кириллицы от utf-8 профита никакого, при хранении китайских иероглифов utf-8 еще и более требовательна к памяти. Единственный выигрыш это латиница.

V> R>3. В UTF-16 почти все что нужно лежит в пределах BMP (т.е. суррогатная пара не требуется), а значит такие строки могут иметь индексный доступ.


V> Что нужно ?! В Юникоде куча символов может состоять из нескольких кодпоинтов, независимо от суррогатных пар, и это в любой кодировке: UTF-8/16/32.


Я о том, что кодпоинты вне BMP это эмоджи и прочее.
avalon/3.0.0
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.