was的性能优化 下载本文

? Threadlocal:Was采用了连接池方式,web线程的管理是由Was负责的,如果大量使用Threadlocal来存储临时对象,并且在线程退出的时候不显示销毁,也会导致JVM堆可用空间不断减少,其结果和第一点一样;

? 类加载问题:每次不重新启动Sever,而是直接重新启动应用,多次操作后JVM堆剩余空间越来越少,进而引发内存泄露问题(这主要是应用程序中存在静态对象在类装载过程建立了引用的关系,即使停止了应用,但是由于引用关系未显示释放,导致对象一直残留在JVM堆中,只有重启Server才可以销毁) 。

给JVM堆设置一个合理的数值,不一定能给系统的性能带来巨大飞跃,但这却是系统性能调优过程中必不可少的一步。如果系统要运行得更加稳定与支撑更大的并发请求操作,我们需要从各方面着手检查与优化,Heapdump文件可以给到我们很大的帮助。结合垃圾回收日志,我们就可以轻松掌握到JVM堆详细情况,以便为系统设置合理的堆值。