我正在使用StringTemplate作为我的Web应用程序的视图层。最近我测量了渲染页面花了多少时间,简单页面大约50ms,复杂页面大约500ms。这对我的需求来说太多了,所以我正在寻找一种提高ST性能的方法。我怎么能这样做?
大部分时间都是StringTemplate.toString方法消耗的,因此它不是缓存问题。
我主动使用匿名模板和包含的模板 - 这可能是原因吗?
答案 0 :(得分:4)
使用write()而不是toString然后写入您的流。 write()将呈现和传输无缓冲。很大的区别。 叔
答案 1 :(得分:1)
那是 Terence Parr吗?
我认为特伦斯的意思是
template.write(new AutoIndentWriter(response.getWriter()));
然而,我无法相信这会产生明显的不同。
你应该分开两件事
String str = template.toString(); // 1
response.getWriter().print(str); // 2
缓慢可能是涉及IO的第二行。
答案 2 :(得分:1)
如果您使用toString()
内存将变大。
使用toString()
案例运行负载测试时检查内存。
如果你的记忆力足够了。两个案例是同一时间。