在java8中使用metaspace会有没有oom的情况?
发布时间
阅读量:
阅读量
前言:随着Java8版本的发布,Metaspace的引入使得我们不再频繁遭遇java.lang.OutOfMemoryError: PermGen这类错误。然而,需要明确的是,这一新特性并不能彻底解决由类加载机制引发的内存泄漏问题。
(一)Metaspace的基本概述
(1)内存结构:当前大部分与类相关的元数据信息被分配在本地内存中,原先用于描述类元数据的“klasses”结构已被取消。
(2) 存储范围:在默认配置下,其容量仅受限于本地内存资源,但用户也可以对其进行手动设定。
(二)接下来分析Metaspace是否仍可能发生OOM问题
我们可以通过动态代理技术生成大量代理类的信息,从而填充元数据区域。相关实现代码如下
public interface MetaspaceFacade {
void method(String input);
}
public class MetaspaceFacadeImpl implements MetaspaceFacade {
public void method(String name) {
}
}
全部评论 (0)
还没有任何评论哟~
