美文网首页
2021-11-03 XStream内存泄露问题的解决

2021-11-03 XStream内存泄露问题的解决

作者: 归去来ming | 来源:发表于2021-11-03 09:57 被阅读0次

定位问题,jstack命令查看线程:


image.png

看提交记录,怎么解决的,一目了然:


image.png

查看XStream源码:

public XStream() {
        this((ReflectionProvider)null, (Mapper)((Mapper)null), (HierarchicalStreamDriver)(new XppDriver()));
}

// 点进this,来到这个方法,方法上标注了Deprecated
public XStream(ReflectionProvider reflectionProvider, Mapper mapper, HierarchicalStreamDriver driver) {
        this(reflectionProvider, driver, (ClassLoader)(new CompositeClassLoader()), mapper);
    }

可以看出,XStream内部又会new一个CompositeClassLoader,后面的代码中使用Class.forName调用该loader:


image.png

minor gc不会回收这种class loader对象,那就会导致heap被占满并full gc。

参考文章:http://blog.sina.com.cn/s/blog_6c02f51e0100wojj.html

相关文章

网友评论

      本文标题:2021-11-03 XStream内存泄露问题的解决

      本文链接:https://www.haomeiwen.com/subject/whmqzltx.html