解决方案 »

  1.   

    JSP页面在向用户返回结果之后,其实已经可以释放了。你试试看用jmap的命令去看一下,这些对像是不是属于应回收而未回收。另外一个手段,就是用压力工具长时间的跑一下,比如跑个一晚上或者一个周未再看内存使用的情况 。
      

  2.   


    是这样,都不用压力工具,我这程序已经是用户使用状态了,已经在不停的当机了,总是要重启中间件才可以正常,按照JVM回收机制,我页面都关闭了,产生的对象,长时间不使用的话,是会自动回收,就算不自动。我都gc了,可还是在那挂着,就让我很纳闷了。
      

  3.   


    是这样,都不用压力工具,我这程序已经是用户使用状态了,已经在不停的当机了,总是要重启中间件才可以正常,按照JVM回收机制,我页面都关闭了,产生的对象,长时间不使用的话,是会自动回收,就算不自动。我都gc了,可还是在那挂着,就让我很纳闷了。
    如果是这样子的话,你在当机之前,用jmap -histo 看一下输出,再没有线索的话就要dump一下,看看哪里没有释放 。另外,还有一种可能性是根本不是你的程序没有释放,而是 hibernat这一层导致的或者,IOC,AOP用的多了,在thread local 里存了内容。
      

  4.   

    基本上确认了。其实不是JSP写的一些内容的问题,真正是由于我们用的一个前台插件E3惹的事,现在已经决定更换前台插件了。
    谢谢各位