java内存泄漏疑问

blueskyer5566 2012-08-24 10:44:22
我们用GWT+SPRING+HIBERNATE+JBPM开发了一套流程系统,产品验收时需要进行压力测试,测试过程中,并发用户数为100,系统能正常响应,但是,当撤去压力里,tomcat的内存不能及时回收,old区占有25%左右的内存不释放,过了15-20分钟后,内存才能慢慢释放,这种现象是什么原因导致的,属于内存泄漏吗?
请高手指教~
...全文
835 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
ndsctangkun 2013-03-08
  • 打赏
  • 举报
回复
引用 2 楼 peng_hao1988 的回复:
GC不是一直进行的,它有一定的时间间隔的,JVM有专门做垃圾回收的现场,每个一段时间会将JVM中数去引用的数据回收。这个时间间隔JVM有提供配置的。
+1 如果堆中的对象,长时间不被清理,那就是程序的问题了
请叫我铸子 2013-01-31
  • 打赏
  • 举报
回复
java bin里 不有个分析工具吗 看下是否真的是虚拟机堆的问题
JAVA2010CZP 2013-01-29
  • 打赏
  • 举报
回复
dump堆分析下
cxzucc 2013-01-28
  • 打赏
  • 举报
回复
还有就是楼上说的,old区的gc并不是马上就进行的,要结合实际情况。
cxzucc 2013-01-28
  • 打赏
  • 举报
回复
应该是要等session失效之后,old才可以回收。楼主试试把session的失效时间配短验证一下。
fhqibjg 2013-01-22
  • 打赏
  • 举报
回复
这个是正常现象,并不是你压力撤销后就会马上进行gc,对于何时触发gc也得看你是配制的那种回收方式。串行、并行或是并发,配制回收方式后还要看你配制触发的伐值等。
downloadper 2012-12-04
  • 打赏
  • 举报
回复
old区域是存放生命周期长的内存对象,由new generation区域转移过来,在撤销压力测试后,new generation对象中瞬时对象会在GC运行后被回收,而长生命周的对象依然是survive状态,此时对象将进入old区域,对于oid区域的内存回收是有GC进行控制的,所以等待这段时间是正常的。如果你的内存对象是根据时间而递增的,那肯定是内存存在泄漏。
桃园闲人 2012-11-21
  • 打赏
  • 举报
回复
GC不是一直进行的,它有一定的时间间隔的,JVM有专门做垃圾回收的现场,每个一段时间会将JVM中数去引用的数据回收。这个时间间隔JVM有提供配置的。
qq_2387503106 2012-11-20
  • 打赏
  • 举报
回复
这个属于正常的啊,你要是搞手动GC,那会得不偿失呢,回收的时候也会耗不小资源,若是想提高并发,可以修改JVM参数啊,网上这样教程很多

25,980

社区成员

发帖
与我相关
我的任务
社区描述
高性能WEB开发
社区管理员
  • 高性能WEB开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧