Groovy PermGen Full GC 问题解析以及解决
线上环境 使用Groovy脚本为业务提供自定义配置 结果 没几天就fullGC 并且持续很长时间,才降下来,
groovy 常见的三种引入方式都会有对应的问题,:
核心的问题是Groovy会缓存掉曾经执行的代码片段成为META-class ,如果每次执行的代码都不一样。那么缓存的类会越来越多。
相应的解决办法:
<dependency> <groupId>org.codehaus.groovy</groupId> <artifactId>groovy-all</artifactId> <version>2.4.7</version> </dependency>
//清除groovy 里面的缓存, 防止fullGC,也可以定时来做 GroovyClassLoader groovyClassLoader = engine.getClassLoader(); Class[] classes = engine.getClassLoader().getLoadedClasses(); for (Class clazz : classes) { GroovySystem.getMetaClassRegistry().removeMetaClass(clazz); groovyClassLoader.clearCache(); try { Field globalClassValue = ClassInfo.class.getDeclaredField("globalClassValue"); globalClassValue.setAccessible(true); GroovyClassValue classValueBean = (GroovyClassValue) globalClassValue.get(null); classValueBean.remove(clazz); } catch (Throwable e) { } } groovyClassLoader.clearCache(); ClassInfo.clearModifiedExpandos(); /** * Using java beans (e.g. Groovy does it) results in all referenced class infos being cached in ThreadGroupContext. A valid fix * would be to hold BeanInfo objects on soft references, but that should be done in JDK. So let's clear this cache manually for now, * in clients that are known to create bean infos. */ Introspector.flushCaches();

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
tomcat服务器宕机解决方案
报错信息: java.lang.Object.wait(Native Method) java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:143) com.mysql.jdbc.AbandonedConnectionCleanupThread.run(AbandonedConnectionCleanupThread.java:43) 每次出现这个报错都会导致tomcat应用服务器停机,加了下面的java代码后就再也没有停过了。 解决办法: 编写Java代码 package cn.listener; import java.sql.Driver; import java.sql.DriverManager; import java.sql.SQLException; import java.util.Enumeration; import javax.servlet.ServletContextEvent; import javax.servlet.ServletContextListener; import javax.ser...
- 下一篇
网页URLs
Extending Python Interpretor: https://docs.python.org/3/extending/index.htmlAliyun Mriirors: https://opsx.alibaba.com/mirrorMySql Downloads: https://dev.mysql.com/downloads/mysql/Software for mac OS X(1): http://www.pc6.com/mac/Software for mac OS X(2): http://xclient.info/JetBrains Active: http://xclient.info/a/f0b9738a-36fd-8a97-a966-0d3db497092d.html?t=ef2c44186feaec53201955d557e62c7239c66c7fLinux Server Assistant: https://www.server110.com/Blogger A: https://www.server110.com/Blogger B: http...
相关文章
文章评论
共有0条评论来说两句吧...