栏目:应用服务器(<--点此查看更多)Java 应用服务器,Tomcat|Weblogic|Jboss|WebSphere相关信息
  • Tomcat7 内存泄露的侦测和防止

  • Tue Jan 08 03:11:51 CST 2013 编程者 我要收藏(...) 评论 ...
  • Tomcat 7包含了一个新的特性,它通过把不能垃圾回收的引用对象移走的方法,能解决一些Permgen内存泄露的问题。
  • 开发者在部署他们写的程序到生产环境上时,经常会遇到Pemgen错误:OutOfMemoryError。这是由于内存泄露而引起的。通常开发者是通过增大permgen内存的大小去解决或者就是重新启动Tomcat。
    Tomcat 7包含了一个新的特性,它通过把不能垃圾回收的引用对象移走的方法,能解决一些Permgen内存泄露的问题。这个特性对程序员部署应用程序在他们的开发环境中是十分方便的,因为程序员在开发环境中为了节省时间一般不重新启动Tomcat就能部署新的war文件。在生产环境中,最好的建议还是停掉 Tomcat,然后清除work下面的目录文件并且重新部署应用。
    当然,内存泄露检测和防止这个特性现在还不是很完善,还是有的情况Tomcat不能检测内存泄露和修复之的,所以对于生产环境,最好的的办法还是停掉Tomcat,然后清除work下面的目录文件并且重新部署应用。
    Mark Thomas解析应用程序或者库程序在如下情况下会触发内存泄露:
    JDBC驱动的注册
    一些日志框架
    在ThreadLocals中保存了对象但没有删除它们
    启动了线程但没停止
    而 Java API 存在内存泄漏的地方包括:
    1、使用 javax.imageio API ( Google Web Toolkit会用到)
    2、使用 java.beans.Introspector.flushCaches()
    3、使用 XML 解析器
    4、使用 RMI 远程方法调用
    5、从 Jar 文件中读取资源
  • 信息来源:http://www.javaweb.cc (举报这篇文章)
  • 好评(...) 中评(...) 差评(...)