2009-04-22 3 views
3

мне было интересно, как дорого алгоритмы преобразования строки кодирования в Java, скажем, за кусок текста в EBCDIC, который должен быть преобразован в UTF-16, или по аналогичной конверсии большого файла. Существуют ли какие-либо ориентиры на стоимость этого преобразования? Тесты для нескольких кодировок были бы лучше.Насколько дорогим является преобразование кодировки строки java?

ответ

3

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

Почти во всех случаях это не будет узким местом. Вероятно, вы могли бы кодировать очень большие строки в несколько десятков мегабайт в незначительное время. Тем не менее, у меня нет фактических контрольных данных.

1

Я подозреваю, что это ничтожно мало. Меня больше беспокоит стоимость выделения новых объектов String, если вы конвертируете тысячи строк или выделяете огромные массивы байтов, если вы конвертируете очень большие строки. Но даже тогда только в экстремальных обстоятельствах.

0

Это довольно незначительны накладные расходы - алгоритмы струнных Java являются в целом очень хорошо и были хорошо оптимизированы на протяжении многих лет.

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

Смежные вопросы