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