Struts2框架性能優化

1.關閉logging和devMode 

2.不要使用你不須要的攔截器(interceptors) 

若是一個Action不須要全棧的攔截器的話,就使用basicStack攔截器或移除不須要的攔截器。 

3.使用正確的HTTP頭(緩存控制和過時時間) 

當返回一個html頁面的時候,要保證html頁面包含正確的header,使得瀏覽器能夠知道怎樣緩存該html頁面。 

4.當使用AJAX theme(Dojo)或日曆tag時,從Struts2的jar包複製靜態內容到http服務器。 

由於http服務器會對這些靜態文件的請求進行優化。 

5.在WEB-INF/classes目錄,新建一個freemarker.properties文件。 

新建一個freemarker.properties文件,增長如下屬性:template_update_delay=60000s。該值決定Freemarker從新加載模板文件的頻率,默認爲500ms。參考: Freemarker的properties文件 

6.激活Freemarker模板的緩存 

2.0.10版本設置struts.freemarker.templatesCache=true時,激活struts內部的Freemarker模板的緩存。該值默認爲false 

7.當覆蓋一個theme時,copy全部重要的模板到theme目錄 

當template在當前目錄不能發現時,會有性能開銷。由於在返回父模板前,struts2必須在當前目錄進行theme檢查. 晚先時候,這個缺陷將要經過一個 template緩存解決。 

8.在你須要的時候才建立sessions 

除 非須要,Struts2不會建立sessions(好比,在你的攔截器stack中有createSession攔截器)。注意當使用SiteMesh 時, 一個session將老是被建立(看看http://forums.opensymphony.com /thread.jspa?messageID=5688的描述). 

9.當使用FreeMarker時,儘可能使用等價的FreeMarker元素,代替JSP的標籤。 

Freemarker 支持list迭代, 顯示屬性,包含其餘模版, macro's等等.使用等價的FreeMarker元素代替struts2的tags 會有小的性能提高。 (例如:<s:property value="foo"/>將要被${foo}代替).
html

相關文章
相關標籤/搜索