java性能优化之java web项目性能优化

1、概述
对于比较大的java web工程,如果出现内存溢出,操作响应时间较长,可以看一下我的教程,这是我自己的思路和想法,大家一起学习。接下来就会列举出关于性能上常常出现的问题和解决思路和方法
2、问题及解决思路
2.1 内存溢出:
项目比较大的时候,我们操作一定时间就会报内存溢出的问题,这是常见的问题。遇到这个问题,我觉得,首先是看代码时候有错误或者死循环的,如果项目比较大并且开发完成的差不多了,显然这个方法是很费时间的,最直接有效的方法是增加jvm的内存大小,不用担心,下面会一步一步的来提高性能优化

情况一:解压版本的Tomcat, 要通过startup.bat启动tomcat才能加载配置

要添加在tomcat 的bin 下catalina.bat 里

rem Guess CATALINA_HOME if not defined
set CURRENT_DIR=%cd%后面添加,红色的为新添加的.

set JAVA_OPTS=-Xms256m -Xmx512m -XX:PermSize=128M -XX:MaxNewSize=256m -XX:MaxPermSize=256m -Djava.awt.headless=true

情况二:安装版的Tomcat下没有catalina.bat

windows服务执行的是bin/tomcat.exe.他读取注册表中的值,而不是catalina.bat的设置.

修改注册表HKEY_LOCAL_MACHINE/SOFTWARE/Apache Software Foundation/Tomcat Service Manager/Tomcat5/Parameters/JavaOptions
原值为-Dcatalina.home="C:/ApacheGroup/Tomcat 5.0"-Djava.endorsed.dirs="C:/ApacheGroup/Tomcat 5.0/common/endorsed"-Xrs

加入 -Xms300m -Xmx350m 
重起tomcat服务,设置生效
2.2响应时间较长
项目在压力测试,并发测试的时候,经常会出现操作响应时间比较长!我们会考虑是不是java web工程中导入的jar包太多了,导入的js太多了等等问题
tomcat在启动的时候回编译项目中全部jar包,但是程序代码中如果没有去new jar包中的内容,jar包是不会执行的,也就是说,jar包多少跟这个关系不大
js也是同样的道理,所以,可以把jar包多,和js多不是特别重要
所以,我觉得处理这个问题分几个步骤:
1、整理现有的代码,把出现如下图的代码删掉,因为引入就代表去执行了,在这一步中,如果对代码清楚的话,可以根据这个删除一些不用的jar包但一定要小心删除


2、做完第一步之后,我们就开始最重要的一步,我们规定一个sql查询时间,和页面响应时间,比如,我们规定页面响应时间不能超过4秒,如果超过4秒了,我们就去看这次操作的代码,第一个要看的就是sql所用的时间,如果时间超过了规定的时间,就尽可能改变sql语句来缩短时间;sql完了之后,如果响应时间还在规定的时间以外,那就去看代码,主要是那些例如for循环,while语句,计算方法,这步可以把一些不用到的方法直接就能删掉了
3、按照第二步一个一个页面的测试,相信,项目的性能肯定会有所提升的
注意:在进行这3步测试的时候,如果条件支持,可以给项目增加点压力,和并发,这样测试的更准确。
切记:我们这是提升性能优化过程,不是开发过程,项目本身的逻辑不能变,大量的代码最好不要修改,如果实在提升不了,那也么办法了!

猜你喜欢

转载自www.cnblogs.com/5566s/p/11892655.html