我爲我的web應用程序使用StringTemplate作爲視圖圖層。最近我測量了渲染頁面花費了多少時間,簡單頁面大約需要50ms,複雜頁面大約需要500ms。這對我的需求太多了,所以我正在尋找一種方法來提高ST的表現。我怎樣才能做到這一點?爲什麼StringTemplate可能會很慢?
大部分時間是由StringTemplate.toString方法消耗掉,所以它不是一個緩存問題。
我積極利用匿名模板和包含的模板 - 可這是原因?
我爲我的web應用程序使用StringTemplate作爲視圖圖層。最近我測量了渲染頁面花費了多少時間,簡單頁面大約需要50ms,複雜頁面大約需要500ms。這對我的需求太多了,所以我正在尋找一種方法來提高ST的表現。我怎樣才能做到這一點?爲什麼StringTemplate可能會很慢?
大部分時間是由StringTemplate.toString方法消耗掉,所以它不是一個緩存問題。
我積極利用匿名模板和包含的模板 - 可這是原因?
使用write()不toString然後寫入您的流。 write()將呈現並傳輸w/o緩衝。巨大差距。 Ter
是特倫斯帕爾?
我認爲特倫斯意思是
template.write(new AutoIndentWriter(response.getWriter()));
但我不能beieve,這將使任何明顯的差異。
你應該時刻兩件事情分開
String str = template.toString(); // 1
response.getWriter().print(str); // 2
緩慢可能是基於涉及IO二號線。
我剛剛測量(1)和(2)。不幸的是,問題出現在'toString'中; 'print'只需要很少的時間。 – Fixpoint 2010-06-24 13:28:58
如果使用toString()
內存是要大。
檢查你的記憶時toString()
情況下運行負載測試。
如果你的記憶力夠了。兩種情況是同一時間。
不是緩存問題?如果你緩存了結果字符串呢? – 2010-06-23 15:40:49
這就是我打算做的暫時解決問題,但我更喜歡快速瀏覽引擎來緩存。 – Fixpoint 2010-06-23 17:13:40
@Fixpoint:你可以發佈你正在用來測試ST的源代碼嗎? – 2012-03-22 12:09:02