openjdk.ruOpenJDK на русском

JEP 112: Charset Implementation Improvements

Улучшения реализации кодировок

ОтветственныйXueming Shen
ТипFeature
ОбластьImplementation
СтатусClosed / Delivered
Выпуск8
Компонентcore-libs
Обсуждениеcore dash libs dash dev at openjdk dot java dot net
ТрудоёмкостьS
ДлительностьS
ОдобренBrian Goetz
Создан2011/07/28 20:00
Обновлён2015/01/22 17:18
Задача8046102

Аннотация

Упростить сопровождение и повысить производительность реализаций стандартных и расширенных кодировок.

Мотивация

  • Уменьшить размер установленных кодировок

  • Снизить затраты на сопровождение: генерировать реализации кодировок во время сборки из простых текстовых таблиц соответствия

  • Повысить производительность кодирования и декодирования

Описание

Это вторая часть проекта по новой реализации sun.nio.cs/ext. В JDK 7 большинство кодировок (более 80%) были реализованы заново, чтобы упростить сопровождение и повысить производительность. Этот JEP продолжает эту работу, чтобы:

  • Заново реализовать оставшиеся кодировки: в основном японские кодировки на основе JIS_X_0208/0212 и несколько двухбайтовых кодировок IBM, например IBM964 и IBM33722.

  • Реализовать API sun.nio.cs.ArrayDecoder/Encoder для наиболее часто используемых двухбайтовых кодировок, чтобы повысить производительность new String(byte[]) и String.getBytes().

  • Ускорить запуск провайдеров стандартных и расширенных кодировок и доступ к ним.

Тестирование

Необходимо обеспечить полную совместимость новых реализаций с существующей реализацией (для каждой кодовой точки). Чтобы гарантировать корректность, будут написаны новые автоматические модульные тесты, которые запускаются в текущем тестовом фреймворке.