При попытке настроить производительность нашего конвейера синтаксического анализа/проверки/привязки Java XML я заметил следующее:
Итерация символов строки через String.charAt() выполняется медленно, см. например Вудстокс (мне удалось проверить это утверждение собственными тестами):
Промежуточный буфер, в который можно скопировать символы строки в тех случаях, когда такое копирование с последующим доступом к массиву выполняется быстрее, чем вызов String.charAt() (что, возможно, на удивление часто случается и особенно важно для более длинных буферов).
Копирование в буферный массив с помощью String.getChars() и затем итерация буфера, очевидно, обходится дороже, чем просто итерация по массиву.
Библиотеки с высокой оптимизацией производительности, такие как FastJSON, используют смесь небезопасных, устаревших и недокументированных API-интерфейсов (AFAIU) для прямого доступа к резервному массиву String (я проверил с помощью собственных тестов, что этот подход имеет преимущества в производительности)
Знаете ли вы о каких-либо планах «официально» предложить API для прямого доступа к резервному массиву String?
При попытке настроить производительность нашего конвейера синтаксического анализа/проверки/привязки Java XML я заметил следующее: [list] [*]Итерация символов строки через String.charAt() выполняется медленно, см. например Вудстокс (мне удалось проверить это утверждение собственными тестами): [/list]
Промежуточный буфер, в который можно скопировать символы строки в тех случаях, когда такое копирование с последующим доступом к массиву выполняется быстрее, чем вызов String.charAt() (что, возможно, на удивление часто случается и особенно важно для более длинных буферов).
[list] [*]Копирование в буферный массив с помощью String.getChars() и затем итерация буфера, очевидно, обходится дороже, чем просто итерация по массиву. [*]Библиотеки с высокой оптимизацией производительности, такие как FastJSON, используют смесь небезопасных, устаревших и недокументированных API-интерфейсов (AFAIU) для прямого доступа к резервному массиву String (я проверил с помощью собственных тестов, что этот подход имеет преимущества в производительности) [/list] Знаете ли вы о каких-либо планах «официально» предложить API для прямого доступа к резервному массиву String?