web项目性能优化方案
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
web项目性能优化方案收藏
性能优化有两个用途:提高页面的相应速度和减少服务器的开销
以下是最近几天在网上搜索的资料,并结合我们自己的项目做了测试,感觉我们的Web工程在性能上还有很大的提升空间!一下介绍几点优化的方案,仅供参考!
1、jsp预编译
jsp页面的预编译有三种:
a手动方法,部署完毕后全局访问一遍所有页面
b通过shell脚本把生成的.class文件直接发送到现场
c通过weblogic.xml配置的预编译在现场部署时完成预编译
以下结合我们项目介绍一下各自优缺点
A是我们现在所用的方法,部署完毕后现场工程师访问一个我们提供的页面,通过Ajax系统遍历全部页面。缺点:不适用于集群部署!
B 配合5中的类加载也是大型项目最常用的方式,代码安全性好和访问速度
快是最大的优点!但是他的缺点也很明显:页面更新不灵活。
C 这个办法实现简单,可以提高第一次访问页面的速度,但是缺点比较严重:
大大增加了Weblogic部署应用时的负担,而且不会预编译WEB-INF下的文件(Oracle给的官方说法也是绕过WEB-INF的)
可行方案(张翔赞助):在B方案的基础上还是使用默认的加载jsp文件机制,这样发包前我们自己替现场的Weblogic完成了预编译的过程,降低了Weblogic部署的负担,而且能灵活修改jsp文件
2、控制JavaScript
Javascript是不标准HTML内容的最大来源,虽然实现了很多非常炫的效果但是却放缓了页面加载的时间。而且经常使用
window.document.getElementById("")也会影响速度。
可行方案:
A 把页面验证拿到内部结合我们的common页面来使用,这样验证处理更灵
活,更美观,页面加载也更快。
B 做一个缓存来处理大量使用到document的页面,如:
Var rootDoc = window.document;
rootDoc. getElementById("").value=…..
rootDoc. getElementById("").value=…..
C 能用innerText的尽量使用innerText,减少innerHTML的使用
3、控制jsp时间戳校验频率
Webloic提供了控制jsp更新频率的配置项
这个方法规定了Weblogic多长时间去检查一下jsp文件的更新,首先去检查jsp文件的时间戳,即便是jsp没有更新也会有性能上的消耗,而且这个值默认是1S,几乎是动态更新的!
可行方案:
研发阶段保持默认的配置,便于对页面的调试;发包到现场时把这个值改为3600S,降低Weblogic的性能消耗。
4、控制Servlet时间戳校验频率
Weblogic中的配置项
可行方案:
研发阶段不建议用默认值,测试后感觉相应有点慢,自己根据喜好去配置吧。发包时建议调成-1,表示从来不去关心action层代码的更新,也是为了减少Weblogic的压力
5、Web.xml加载机制
只适用于项目后期或成型期,需求不会频繁变动,那么在web.xml里面加入这个配置项吧:
Weblogic再也不会去关心你的jsp文件,当你访问页面时他直接调用.class文件
可行方案:
建议项目后期成型以后再使用此方案
6、控制垃圾代码
由于System.out.println()是一种同步调用,即在调用它时,磁盘I/O操作必须等待它的完成,因此我们要尽量避免对它的调用
使用log4j可以代替它的工作,但是毕竟log日至对性能和硬盘也是一种消耗。
可行方案:
彻底消灭System.out.println(),精化log日至,提高log日至的含金量
7、减少连接次数
数据库的连接,webservices的连接也是很耗性能的,所以尽量减少连接次数,一次能搞定的事情就不要留给下次
可行方案: