问题陈述:
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搭一个框架。
分享到:
相关推荐
Java 项目性能优化
关于web项目的优化,解决我们项目开发中数据量和访问量太大的问题,使我们的项目更加的健壮漂亮
河北安监项目性能优化解决方案,针对java编码,服务器
大型项目MySQL性能优化实例
但是在项目的开始阶段,没有必要过早地介入性能优化,只需在编码的时候保证其优秀、高效,以及良好的程序设计。 在完成项目后,就可以进行系统测试了,可以将以下性能指标,作为性能调优的标准,响应时间、吞吐量、...
vue项目性能优化方案
, 关于系统性能优化,《嵌入式Linux内存使用与性能优化》不同于同类书侧重于编程语法或者发挥硬件性能的做法,而是着眼于大型软件项目性能优化实践,阐明了逻辑优化与代码优化之间的辩证关系,提出了软件优化层次的...
负载均衡+性能优化+分布式网站安全大型分布式电商项目实战课程;负载均衡+性能优化+分布式网站安全大型分布式电商项目实战课程
整理的前端项目性能优化方案,从如下几个方面进行性能优化: 一、网络及资源加载方面优化; 二、webpack打包工具构建优化; 三、代码及渲染优化; 四、特定页面加速优化;
asp.net开发性能优化基础项目仅供参考
天极传媒公司培训文档,PPT格式共30页左右,从编码习惯,规范到架构设计上对Java应用性能优化做了详细明确的讲解,初学者看了是受益匪浅的
1.CPU的计算能力 2.磁盘的读写能力 3.内存的读写能力 4.网络的读写能力
web项目测试实战性能测试结果分析样章.doc XX性能测试报告.pdf XX性能测试计划.xls 成功的 Web 应用系统性能测试.doc 存储转发机制优化系统测试方案及案例.doc 软件性能测试从这里开始V1[1].0.0.0.pdf 系统性能测试...
你是否正打算优化hashCode()方法?是否想要绕开正则表达式?并行处理对算法复杂度没有影响。如果你的算法的时间复杂度为 O(nlogn),让算法在 c 个处理器上运行,事件复杂度仍然为 O(nlogn/c), 因为 c 只是算法中...
跟我一起学visual.studio.2005(10):asp.net应用程序性能优化
01-性能优化的终极目标是什么? 用户体验 = 产品设计(非技术) + 系统性能 ≈ 系统性能 = 快? 应用性能是产品用户体验的基石,性能优化的终极目标是优化用户体验。当我们谈及性能,最直观能想到的一个词是“快”,哪...
这是阿里工程师在某个技术会议所做的专题演讲的ppt文档,主要讲解阿里在面对大容量请求时的一些经验。感觉比较空泛,需具备一些实际经验者比较容易理解掌握,谨慎下载。
Java性能调优 6步实现项目性能全面升级+面试高频性能问题讲解视频教程分享,性能优化的N种企业级解决方案,囊括了【数据库优化】、【Tomcat优化】、【JVM优化】、【垃圾回收】、【Netty优化】、【Nginx优化】、...
面试题必问的jvm性能优化相关,如何在实际项目中优化jvm,解决项目中性能问题。提升系统的稳定性,以及可维护性。