4

我使用 StringTemplate 作为我的 Web 应用程序的视图层。最近我测量了渲染页面花费了多少时间,简单页面大约为 50 毫秒,复杂页面大约为 500 毫秒。这对我的需求来说太多了,所以我正在寻找一种方法来提高 ST 的性能。我怎样才能做到这一点?

大部分时间都被 StringTemplate.toString 方法消耗掉了,所以不是缓存问题。

我积极使用匿名模板和包含的模板 - 这可能是原因吗?

4

3 回答 3

4

使用 write() 而不是 toString 然后写入您的流。write() 将在没有缓冲的情况下呈现和传输。巨大差距。三

于 2010-06-23T16:46:55.043 回答
1

特伦斯·帕尔吗?

我认为特伦斯的意思是

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

但是我不能相信这会产生任何明显的差异。

你应该分别计时两件事

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

缓慢可能在涉及 IO 的第二行。

于 2010-06-23T23:23:23.800 回答
1

如果你使用toString()内存会变大。

在使用案例运行负载测试时检查您的内存toString()

如果你的记忆力足够。两例是同时发生的。

于 2012-11-19T15:58:29.950 回答