Почему StringTemplate может быть медленным? - PullRequest
4 голосов
/ 23 июня 2010

Я использую StringTemplate в качестве слоя представления для моего веб-приложения.Недавно я измерил, сколько времени тратится на рендеринг страниц, и составляет около 50 мс для простых страниц и 500 мс для сложных страниц.Это слишком много для моих нужд, поэтому я ищу способ улучшить производительность ST.Как я могу это сделать?

Большую часть времени занимает метод StringTemplate.toString, поэтому это не проблема кеша.

Я активно использую анонимные шаблоны и включенные шаблоны - может ли этопричина?

Ответы [ 3 ]

4 голосов
/ 23 июня 2010

используйте write (), а не toString, затем записывайте в свой поток.write () будет визуализировать и передавать без буферизации.большая разница.Ter

1 голос
/ 19 ноября 2012

Если вы используете toString() Память будет большой.

Проверьте память при запуске нагрузочного теста с toString() кейсом.

Если вашей памяти достаточно. Два дела это одно и то же время.

1 голос
/ 24 июня 2010

Это Теренс Парр?

Я думаю, что Теренс имел в виду

template.write(new AutoIndentWriter(response.getWriter()));

однако я не могу поверить, что это будет иметь какое-то заметное значение.

Вы должны рассчитать две вещи отдельно

String str = template.toString();  // 1
response.getWriter().print(str);   // 2

медлительность, вероятно, находится на 2-й строке, которая включает IO.

...