我使用 StringTemplate 作为我的 Web 应用程序的视图层。最近我测量了渲染页面花费了多少时间,简单页面大约为 50 毫秒,复杂页面大约为 500 毫秒。这对我的需求来说太多了,所以我正在寻找一种方法来提高 ST 的性能。我怎样才能做到这一点?
大部分时间都被 StringTemplate.toString 方法消耗掉了,所以不是缓存问题。
我积极使用匿名模板和包含的模板 - 这可能是原因吗?
我使用 StringTemplate 作为我的 Web 应用程序的视图层。最近我测量了渲染页面花费了多少时间,简单页面大约为 50 毫秒,复杂页面大约为 500 毫秒。这对我的需求来说太多了,所以我正在寻找一种方法来提高 ST 的性能。我怎样才能做到这一点?
大部分时间都被 StringTemplate.toString 方法消耗掉了,所以不是缓存问题。
我积极使用匿名模板和包含的模板 - 这可能是原因吗?
使用 write() 而不是 toString 然后写入您的流。write() 将在没有缓冲的情况下呈现和传输。巨大差距。三
那是特伦斯·帕尔吗?
我认为特伦斯的意思是
template.write(new AutoIndentWriter(response.getWriter()));
但是我不能相信这会产生任何明显的差异。
你应该分别计时两件事
String str = template.toString(); // 1
response.getWriter().print(str); // 2
缓慢可能在涉及 IO 的第二行。
如果你使用toString()
内存会变大。
在使用案例运行负载测试时检查您的内存toString()
。
如果你的记忆力足够。两例是同时发生的。