J2EE性能优化精粹

做了IT十多年,发现需要写些文章来提高大家的水平。有幸培训过不少人调优,并调试过多个大型上千万的J2EE项目,总结了一些经验,提供给大家。

如果一个系统出现性能问题,需要从上面四个方面来考察。

1、平台

平台包括内存和CPU。Java是比较吃内存的,如果内存很紧张,说明内存不够。CPU的话,如果负载总大于75%,说明CPU很紧张。

2、Java虚拟机

很多人对这个不重视。其实,Java虚拟机是非常重要的。大家比较熟悉的和常用的是Sun的JVM。那为什么BEA用JRockit,IBM用自己的JVM?如果Sun的JDK很完美,我想BEA和IBM也不会花大把的银子自己做个JVM。

以Sun的JVM 1.4比Sun的JVM 1.3快30%。

下图是JRockit、Sun JDK 1.4.2、Sun JDK 1.4.1的比较。可以看出JRockit和Sun JDK 1.4.2持平,而Sun JDK1.4.1很差。

所以我们一定要看看自己用的JDK是多少版本,稍微一换,速度大幅提高。对Sun的JDK一定要用1.4.2。

另外JDK还有很多参数要调。

第一个就是-Xms -Xmx。

要记住-Xms -Xmx指的是图中的堆的大小。物理内存被操作系统、JVM、其他程序和你的程序分享。根据我的经验,一般-Xms设为物理内存的1/4,-Xmx设为物理内存的1/2

这个一定要设。比如安装Weblogic,按照默认,用Sun的JDK,则为-Xms32m -Xmx200m,你想200m那够啊。1G的内存你可以用512m。对Tomcat,则没设。这样,你的程序会不断分配内存、释放内存,大大影响速度。如果并发用户多,还会造成OutofMemory。

另外JVM还有很多参数,仔细研究,会提高不少速度。如对Sun JDK,采用UseTLAB,即线程局部分配内存,即分配内存的机制与C类似,会提高速度。这在IBM JDK中是默认的。

3、应用服务器

常用应用服务器包括Weblogic、WebSphere、Tomcat等,用好了都不错。对于Tomcat,5.0会比4.1快很多,机制不一样。对于Weblogic,那个weblogic.kernal.default线程的数量需要调,否则10几个并发后就不行了。

Weblogic、WebSphere有调优的文档,可以看看,大楷调的好,会有10%左右的提高,一般不用。但不要设置的不对,那就是错误。

4、程序

基本上性能慢都是程序写的不好或有问题。前面讲的都是傻瓜式的,稍微弄弄、注意点就好了。程序有问题,那才是最不好查,也容易造成性能急剧下降的原因。

待续...

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值