项目性能优化报告

问题陈述:

tomcat服务器运行一段时间后,tomcat控制台报错:
java.lang.outOfMemoryError即内存堆泄露,然后tomcat服务死掉,只有重启tomcat才能恢复服务。



分析:

1)java虚拟机jvm内存过小
2)程序不严密,产生太多的垃圾



解决方法:
针对第一个原因:考虑到本项目系统数据不是很大,再加上服务器内存配置不会太低,所以可以暂且不考虑此问题。
针对第二个原因:
由于jvm产生的垃圾是由我们所写的代码产生的,质量好的代码产生的垃圾少,相反就会产生很多垃圾。
由于jvm的最大内存不能无限增大,故增大jvm的最大内存应该是在代码已经达到很优化时才实施的,所以优化程序才是我们最先要做的。

运用java VisualVM来监控系统的堆和内存使用情况,通过"抽样器"来观察那些类不正常消耗内存。

安照以下几点进行系统优化:
第一,避免死循环。仔细检查程序,防止出现死循环。
查看了代码没有发现这种情况。

第二,应该及时释放各种资源:内存, 数据库的各种连接。 如置对象为null,关闭数据库连接。
(1).发现在for循环中用到大量的String局部变量,我把它移到for循环外面来做全局变量。
(2).发现Action中的每个方法,有多个或是每个dao被多次实例化,每实例化一次,数据库就开启一次,这样会导致数据
库的开销大。现在修改为在一个Action中对需要的dao做一个全局的实例化,这样就只需要开启一次,多处使用。
(3). 数据开启后没有关闭。现在把请求多的地方,加上了手动关闭数据库的方法。
(4).项目中配有延迟加载没有使用,使得项目一次读取大量数据,这也会使系统运行慢,现在改为使用延迟加载的功能。

总结:
此项目运用了struts, hibernate,没有使用spring做管理,这就导致在对数据库操作是经常忘记对数据库关闭,对他的开启操作
也没有控制好。此项目没有运用面向接口编程,所以后期修改也比较麻烦。没有运用现在开发使用比较多的hibernate的annotation,
在数据库的配置修改不是很方便。
个人建议如果有时间,可以重新用SSH搭一个框架。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值