问题如题所示。
情况是:我们现在的一个产品在部署到服务器上时,在jvm的启动项里已经加了启动参数 -xmX=512M,但是,当用大量的用例去测试时,会由于内存占用不断升高而导致内存枯竭,最终导致产品的进程处理缓慢而死掉。因为产品的代码量比较大,所以要通过重新设计代码来规范内存使用几乎不可能。我现在也没有其他的办法,想一个比较笨的办法就是编写一个可以动态收集内存占用的脚本,然后让它每隔一段时间自己执行一次,以此来保证产品进程的正常运行。不知道各位有没有遇到过类似的问题?有什么好的解决办法吗?

解决方案 »

  1.   

    jvm本身就是可以动态收集内存的..好像可以设置周期的像这种情况建议服务器加内存,,这是最有效的方法当然如果编码的时候没有注意的话,加多少内存都是白搭
      

  2.   

    首先谢谢lzrzhao(隼) 兄的回复,我估计加内存解决不了问题,不过可以试试。
    动态回收的周期应该怎么设置?我只是在java的启动项里加了一个垃圾回收的启动参数“-Xincgc”,意思是使用jvm的渐进式垃圾回收机制,但是在后来的测试中看来并不能有效的回收。内存还是在升高到一个极限值后就停在那里。