The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Индекс форумов
Составление сообщения

Исходное сообщение
"Mozilla разрабатывает новый язык программирования Rust"
Отправлено gegMOPO4, 01-Дек-10 22:28 
> Тратить время на перекодировку при вводе и выводе как раз совершенно не
> жалко.
> Это делается один раз.

Два раза. На каждый обработанный байт. При вводе и выводе. И много раз, если нужно одни и те же данные выдавать по запросу много раз. Мелочь, но зачем делать лишнюю работу?

> А вот времени на перекодировки по требованию
> происходят несоизмеримо большее число раз во время выполнения приложения.
> Например, при сопоставлении с теми же регекспами.

Не надо. Регэкспы, рассчитанные на UTF-8 работают с тем же успехом, что и рассчитанные на UTF-32. Даже лучше, потому, что байтов нужно вчетверо меньше прогнать. И проверки проще.

> Точно так же, прекрасно все работает и для строк, представленных
> в виде wide символов. Не вижу никаких выгод.

Это о том, что у UTF-32 нет выгод перед ASCII/UTF-8. А вот недостатки есть. Поиск цифры [0-9] или начала идентификатора [A-Za-z_] в ASCII -- всего лишь одна табличка, для UTF-32 же будет как минимум к этому ещё проверка/ветвление (десятки процентов к производительности). Для не-ASCII будет в обоих случаях сложно, но в UTF-8 всё же типичные данные будут короче.

> И здесь мы опять получаем необходимость перекодировку по требованию, теряя драгоценое время,
> которое так экономили в п.1.

Так и в UTF-32 перекодировка нужна. Для всяких там комбинированных символов. Не говоря уж о том, что распаковка из UTF-8 -- это 1-3 ветвления, а дальше в подобных задачах этих ветвлений и обращений к таблицам будут десятки.

> А заодно перепишите все уже имеющиеся системные и сторонние библиотеки.

У вас системные и сторонние библиотеки на UTF-8 или на UTF-32 рассчитаны? Подозреваю, что на первое чаще. А ещё есть UTF-16. Перекодировать всё равно иногда придётся, так лучше уж делать это реже.

> Накладных расходов на память нет. Это миф.
> Несоизмеримо больше занимает то, что никак не связано со строками.

Тут скорее не на память, а на перекодировку. Если нужно найти в файле "\nFrom ", то в любом случае вы работаете с неперекодированными байтами.

 

Ваше сообщение
Имя*:
EMail:
Для отправки ответов на email укажите знак ! перед адресом, например, !user@host.ru (!! - не показывать email).
Более тонкая настройка отправки ответов производится в профиле зарегистрированного участника форума.
Заголовок*:
Сообщение*:
 
При общении не допускается: неуважительное отношение к собеседнику, хамство, унизительное обращение, ненормативная лексика, переход на личности, агрессивное поведение, обесценивание собеседника, провоцирование флейма голословными и заведомо ложными заявлениями. Не отвечайте на сообщения, явно нарушающие правила - удаляются не только сами нарушения, но и все ответы на них. Лог модерирования.



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру