web项目性能优化方案

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 更新频率的配置项

pageCheckSeconds

60

这个方法规定了Weblogic 多长时间去检查一下jsp 文件的更新,首先去检查jsp 文件的时间戳,即便是jsp 没有更新也会有性能上的消耗,而且这个值默认是1S , 几乎是动态更新的!

可行方案:

研发阶段保持默认的配置,便于对页面的调试;发包到现场时把这个值改为3600S, 降低Weblogic 的性能消耗。

4、 控制Servlet 时间戳校验频率

Weblogic 中的配置项负责控制Servlet (这里主要指我们的action 层)的更新频率。该配置的默认值也是1!恐怖!

可行方案:

研发阶段不建议用默认值,测试后感觉相应有点慢,自己根据喜好去配置吧。 发包时建议调成-1,表示从来不去关心action 层代码的更新,也是为了减少Weblogic 的压力

5、 Web.xml 加载机制

只适用于项目后期或成型期,需求不会频繁变动,那么在web.xml 里面加入这个配置项吧:

JSPClassServlet

weblogic.servlet.JSPClassServlet

JSPClassServlet

*.jsp

Weblogic 再也不会去关心你的jsp 文件,当你访问页面时他直接调用.class 文件

可行方案:

建议项目后期成型以后再使用此方案

6、 控制垃圾代码

由于System.out.println()是一种同步调用,即在调用它时,磁盘I/O操作必须等待它的完成,因此我们要尽量避免对它的调用

使用log4j 可以代替它的工作,但是毕竟log 日至对性能和硬盘也是一种消耗。 可行方案:

彻底消灭System.out.println(),精化log 日至,提高log 日至的含金量 7、 减少连接次数

数据库的连接,webservices 的连接也是很耗性能的,所以尽量减少连接次数,一次能搞定的事情就不要留给下次

可行方案:


© 2024 实用范文网 | 联系我们: webmaster# 6400.net.cn