мне было интересно, как дорого алгоритмы преобразования строки кодирования в Java, скажем, за кусок текста в EBCDIC, который должен быть преобразован в UTF-16, или по аналогичной конверсии большого файла. Существуют ли какие-либо ориентиры на стоимость этого преобразования? Тесты для нескольких кодировок были бы лучше.Насколько дорогим является преобразование кодировки строки java?
ответ
Это является (п) алгоритм вывода. Время, затрачиваемое на выполнение, будет увеличиваться более или менее линейно с длиной строки, которую вы конвертируете (хотя, если вы конвертируете миллионы очень коротких строк, к этому добавятся служебные вызовы функций).
Почти во всех случаях это не будет узким местом. Вероятно, вы могли бы кодировать очень большие строки в несколько десятков мегабайт в незначительное время. Тем не менее, у меня нет фактических контрольных данных.
Я подозреваю, что это ничтожно мало. Меня больше беспокоит стоимость выделения новых объектов String, если вы конвертируете тысячи строк или выделяете огромные массивы байтов, если вы конвертируете очень большие строки. Но даже тогда только в экстремальных обстоятельствах.
Это довольно незначительны накладные расходы - алгоритмы струнных Java являются в целом очень хорошо и были хорошо оптимизированы на протяжении многих лет.
Это не означает, что это не было бы возможно создать еще более эффективный специализированный алгоритм или, возможно, интерфейс оптимизированной родной библиотеки кода на несколько процентов дополнительной производительности. Но если у вас много серверов, на которых кодирование занимает значительную часть времени процессора, вряд ли это будет стоить усилий.
- 1. Насколько дорогим является Thread.getStackTrace()?
- 2. Насколько дорогим является именованный канал (fifo)?
- 3. Насколько дорогим является склейка двоичных файлов (list_to_binary)?
- 4. Насколько дорогим является рефлексия или интроспекция в java
- 5. Преобразование кодировки Java
- 6. Насколько дорогим является листинг GUID и сравнение с сравнением строк
- 7. Насколько дорогим является запрос с точки зрения табличного пространства TEMP?
- 8. Преобразование кодировки файла Java
- 9. Является ли NSTimer дорогим?
- 10. Является RedirectToAction в C# дорогим?
- 11. Является ли чтение SharedPreferences дорогим?
- 12. Является ли счет (*) действительно дорогим?
- 13. Является ли context.getSystemService() дорогим звонком?
- 14. Является GETDATE() дорогим, как DateTime.Now?
- 15. Преобразование кодировки HTML-символов в Java
- 16. Насколько зрелым является dblinq?
- 17. Преобразование строки из одной кодировки в другую
- 18. Является ли SQL DATEDIFF (год, ..., ...) дорогим вычислением?
- 19. Реализация LRU с меткой времени: насколько дорогим является память и загрузка памяти?
- 20. Является ли ElastiCache от Amazon дорогим?
- 21. Является ли CURL дорогим сравнением file_get_contents()?
- 22. Является ли RelativeLayout более дорогим, чем LinearLayout?
- 23. Является ли листинг enum int int дорогим?
- 24. Unescape и преобразование строковой кодировки
- 25. Преобразование кодировки файла cs
- 26. Преобразование кодировки Python
- 27. Насколько безопасен код кодировки PHP bcompiler?
- 28. Насколько зрелым является java.lang.instrument?
- 29. Преобразование имени кодировки в NSStringEncoding
- 30. Быстрое преобразование строки в байт [] с помощью кодировки UTF-16LE