Следующий код Jsoup объединяет текст всех элементы в контейнере els
:
for (Element el : els)
entireText += el.text();
В контейнере примерно с 64 элементами, каждый из которых содержит примерно 1 КБ (всего около 64 КБ в тексте), этот простой цикл занимает около 8 секунд на обычном бюджетном телефоне Android.
Такая низкая производительность меня немного удивляет, потому что у меня сложилось впечатление, что компиляторы Java заменяют такие выражения, как A + B + C
, на new StringBuilder(A).append(B).append(C).toString()
.
Разве это не так?
Что мне не хватает?
javac
почти не занимается оптимизацией. Даже с JIT это не сильно оптимизирует этот код. Разработчик должен знать, что это действительно эффективно. - person Peter Lawrey   schedule 03.07.2012