问题陈述:
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搭一个框架。
分享到:
相关推荐
关于web项目的优化,解决我们项目开发中数据量和访问量太大的问题,使我们的项目更加的健壮漂亮
大型项目中,MySQL数据库性能优化是保证业务流畅、数据安全、系统稳定的重要手段。本文针对一个拥有两亿注册用户的大型移动项目,从MySQL体系架构、设计优化、系统优化、配置优化和语句优化五个方面进行详细解析。 ...
【工程项目性能测试报告】 在IT领域,性能测试是评估系统在特定工作负载下表现的关键环节。这份“工程项目性能测试报告”旨在详细记录和分析项目的性能指标,以确保系统的稳定性和可扩展性。以下是对报告中涉及的...
本报告主要针对XX系统的个人系统优化项目进行压力测试,旨在评估和提升系统在登录和理财交易处理上的性能,确保满足客户需求。报告详细记录了测试的目标、过程、环境以及测试结果,以便为系统调优提供依据。 **第一...
但是在项目的开始阶段,没有必要过早地介入性能优化,只需在编码的时候保证其优秀、高效,以及良好的程序设计。 在完成项目后,就可以进行系统测试了,可以将以下性能指标,作为性能调优的标准,响应时间、吞吐量、...
vue项目性能优化方案
如何使用 Valgrind 和 GDB 进行 C/C++ 项目的性能优化与调试。首先,Valgrind 是一套强大的动态分析工具集,可检测内存泄漏、非法内存访问和数据竞争等问题;其中,Memcheck、Massif 和 Cachegrind 是常用工具,用于...
【项目性能总体测试报告】 本报告详尽地阐述了针对...这份报告是评估移动APP或Android项目性能的综合指南,通过系统的测试和分析,能够为开发者和项目团队提供宝贵的信息,以便持续改进和优化应用性能,提升用户体验。
《CSAPP性能优化实验》是计算机科学与应用(Computer Science and Application Programming)课程的一个实践环节,旨在提升学生对程序性能优化的理解与技能。在这个实验中,我将详细探讨三个关键的优化策略,并结合...
《C++高效编程:内存与性能优化》是一本专注于C++编程语言内存管理和性能调优的书籍。本书深入探讨了如何在C++编程中高效地使用内存资源,以及如何进行性能优化,以编写出既高效又优雅的代码。 书籍作者Rene ...
, 关于系统性能优化,《嵌入式Linux内存使用与性能优化》不同于同类书侧重于编程语法或者发挥硬件性能的做法,而是着眼于大型软件项目性能优化实践,阐明了逻辑优化与代码优化之间的辩证关系,提出了软件优化层次的...
综上,本次测试揭示了“高手”APP后台在高负载条件下的性能表现,为系统的性能优化提供了具体的数据支持和方向指导。未来的工作应该集中在改善响应时间、合理分配服务器资源以及提升系统在大规模并发情况下的吞吐量...
项目性能优化最详细教程指南
- **企业培训**:适用于企业的内部培训项目,帮助企业员工掌握先进的性能优化技术,提高产品竞争力。 #### 五、总结 《Optimized C++》是一本非常有价值的参考资料,它不仅包含了丰富的理论知识,还提供了大量实用...
【XXX金融项目性能测试报告】 本测试报告详细记录了XXX金融项目在性能测试阶段的关键信息,旨在评估系统在高负载条件下的性能表现,确保其能满足不断增长的用户需求和数据处理压力。性能测试的主要目标是对系统进行...
本篇内容将深入探讨Web前端性能优化的思路与学习方法,结合WebQQ、QQ互联、QQ商家等大型项目研发中的实践经验,提供一套系统的优化框架。 首先,前端性能优化可以从以下几个层面展开: 1. 网络层面优化:优化网络...
【性能测试】是软件开发过程中不可或缺的一环,其主要目的是评估和优化系统在高...通过以上各个部分的组合,【某某某项目性能测试报告模板】能够为项目团队提供全面、专业的性能评估,从而指导系统优化,提升用户体验。
一份详尽的性能测试报告能够清晰地展示测试结果,帮助团队理解系统的性能瓶颈,指导后续的优化工作。以下是一份软件性能测试报告的基本结构和关键组成部分: 1. 引言 - 编写目的:明确报告的目的,通常是为了提供...