问题描述
- java web 内存泄露问题
-
在做web项目,需要从数据库一次读取多个数据,然后填充到bean里放入list,这样在循环读取的时候每次都要创建一个bean对象,之前访问量小没什么,现在访问量大了,程序占用越来越高,这应该怎么办?
解决方案
看下有没有对象在持续引用bean对象,特别是静态成员。把jvm的内存调大
解决方案二:
Java的一个重要优点就是通过垃圾收集器(Garbage Collection,GC)自动管理内存的回收,程序员不需要通过调用函数来释放内存。因此,很多程序员认为Java不存在内存泄漏问题,或者认为即使有内存泄漏也不是程序的责任,而是GC或JVM的问题。其实,这种想法是不正确的,因为Java也存在内存泄露,但它的表现与C++不同。
随着越来越多的服务器程序采用Java技术,例如JSP,Servl......
答案就在这里:Java内存泄露问题
解决方案三:
可以采用分页的方式,不要一次读取很多数据,而是分批次读取,比如一次读取10条,读10次这种。
解决方案四:
LZ您好!
根据您的问题,我理解为,您在前端循环读取的时候,每次都访问了后台。
我建议您做代码优化。比方,在前端访问后台的次数下调。即增加每次数据量的传递。
将bean的创建数量下调,这个方法可以用封装类来实现,每次用户请求的数据,可以封装成一个缓存类来实现。
解决方案五:
1.拿到的bean用完就释放,不要将其长时间存放在list或者map中,这样内存无法回收。
2.减少一次读取数据量
时间: 2024-08-12 10:03:36