我有一个Grails应用程序,它创建了相当不错的域对象创建和破坏,并且它似乎以非常非常快的速度耗尽了PermGen空间.我做了通常的调整(将PermGen提升到256M,启用了类GC等),但没有骰子.
是否有人愿意推荐一些(并希望免费或非常低成本)工具来解决Groovy和/或Java中的这种内存消耗?或者您用于解决JVM内存问题的一些技术?
编辑:这是在生产模式下在Tomcat内部署应用程序的时间; 我没试过其他容器.即便如此,有一些资源可以追踪问题.
你有没有尝试过
-XX:+CMSClassUnloadingEnabled -XX:+CMSPermGenSweepingEnabled
?
加上增加秋后算账(-Xmx
,-Xms
,-XX:PermSize
和-XX:MaxPermSize
)这解决了所有我们生产的Tomcat,这已经部署应用程序后,很快发生PermGen的问题.之后再也没见过另一个OOM-Exception.:-)
我个人喜欢VisualVM.肯定有更强大的工具,但是这个工具具有很好的可用性 - 功率比.