Xstream创建类并导致痛苦的permgen集合

时间:2012-06-08 21:18:28

标签: java garbage-collection xstream permgen

我遇到的问题是,Xstreams xstream.fromXML(xmlString)方法生成的类导致我们的Web容器从permgen填充中经历痛苦的​​垃圾收集。它导致我们的一个树脂3.2.1服务器无响应,迫使重启。

我尝试使用不同的Xstream驱动程序,例如jdom,dom4j,DomDriver,xpp和jettison,但没有运气。

生成的类的名称类似于sun.reflect.GeneratedSerializationConstructorAccessor23

任何人都知道是否可以避免这种情况,或者这是当前Xstream实施(1.4.2)不可避免的副作用?

提前致谢。

2 个答案:

答案 0 :(得分:2)

问题是我们正在为每个请求创建一个新的XStream实例。它被设计为多线程并缓存生成的类。将其转换为静态实例可以修复它。

答案 1 :(得分:0)

如果您使用的是CMS收集器,则可以使用-XX:+CMSClassUnloadingEnabled选项启用perm gen的背景收集。 增加perm gen size也应该有用-XX:MaxPermSize=N。您可以在this cheat sheet中找到更多与GC相关的选项。

虽然它是JVM GC的调优,但没有修复XStream问题。