我正在尝试在运行时生成类并加载它们。
我使用一个
但是问题是,当我这样做一段时间后,会出现以下错误:
我使用一个
ClassLoader
对象来加载这些类。由于我不想用完PermGen
内存,我不时地取消对类加载器的引用,并创建一个新的类加载器来加载要使用的新类。这似乎很好用,我也没有遇到PermGen
内存不足的情况。但是问题是,当我这样做一段时间后,会出现以下错误:
java.lang.OutOfMemoryError: GC overhead limit exceeded
我的问题是,为了避免错误,我应该在什么时候取消对类加载器的引用呢?
我应该在代码中监控PermGen
的使用情况,当PermGen
的使用接近极限时,取消对类加载器的引用并调用System.gc()
吗?
还是应该采取不同的方法?
谢谢。