知识点总结
- Metaspace不再与“老年代”绑定,由元数据虚拟机单独管理,分配本地内存;这样有几个好处:
- 在full gc时,元空间的数据不会被扫描到;
- CMS中特定于Permgen的复杂代码可以移除;
- Metaspace可以动态增长,Permgen(永久代)在运行时不可变;
- 在元空间中,类和其元数据的生命周期和其对应的类加载器是相同的;每个类加载器一块虚拟内存,内部再分成不同的小块;
- 元空间虚拟机管理内存的数据结构是链表,分配方式是分组分配,目前的缺点是有碎片;
- 内存分布对比
- 有Permgen时的Java内存分布
Permgen is there
- Metaspace下的Java内存分布
Metaspace replace permgen
- 有Permgen时的Java内存分布
阅读材料
- jdk-8-memory-layout-and-garbage-collection
- Java永久代去哪了
- Java 8: From PermGen to Metaspace
- metaspace in java8
时间: 2024-12-04 05:04:00