java

位置:IT落伍者 >> java >> 浏览文章

struts2项目性能调优三步曲(一)


发布日期:2021年06月13日
 
struts2项目性能调优三步曲(一)

前一段时间有反映说是一个使用了struts的生产系统的页面显示速度太慢登录后发现确实如此于是进行了一番性能调优的研究和测试

根据struts官方的性能调优说明进行了一些参数的修改

http://strutsapacheorg/x/docs/performancetuninghtml http://cwikiapacheorg/WW/performancetuninghtml

Turn off logging and devMode(关闭logging和Devmode)

这个当然没问题但是全部关闭logging不现实我只是关闭了struts相关package的logging

Do not use interceptors you do not need把strutsxml中不需要的interceptor统统删除

Use the correct HTTP headers (CacheControl & Expires)

不确定应该如何修改

Copy the static content from the Struts jar when using the Ajax theme (Dojo) or the Calendar tag关于这点后面会提到

Create a freemarkerproperties file in your WEBINF/classes directory照做

Create the freemarkerproperties file and add the following setting (or whatever value you deem fitting)template_update_delay=照做

Enable Freemarker template caching As of Struts setting the property strutsfreemarkertemplatesCache to true will enable the Struts internal caching of Freemarker templates This property is set to false by default照做

进行上述修改后发现页面打开的速度并没有明显的提高

此时我已经基本锁定网页打开速度慢的原因与ajax(或者说是dojo)有关因为dojo的js库大概有K左右先尝试使用gzip压缩javascript减小传输量看能否加快页面的加载速度在Tomcat的serverxml的connector中添加如下配置激活gzip功能compression=on compressionMinSize= noCompressionUserAgents=gozilla traviata compressableMimeType=text/htmltext/xmltext/javascriptapplication/xjavascriptapplication/javascript进行上述修改后发现页面打开的速度还是没有明显的提高

经过上述两个实验觉得应该是struts所封闭的dojo的性能问题了于是引入JQuery JQuery的js文件最小是K gzip后应该更小页面的响应速度明显改善(一个数量级以上的提高)主要原因在于与服务器交互的处理上极大地提升了效率而且页面处理代码更加简洁明了

最后我删除了所有的<shead theme=ajax/>和 <shead/>(如果页面中加入<shead />那么在Struts生成的html中后包含dojojs)使用JQuery来完成所有的Ajax和javascript功能

上一篇:Hibernate的批量处理[5]

下一篇:hibernate中自定义主键生成器[1]