Jdk8新内存空间Matespace
-
JVM 种类有很多,⽐如 Oralce-Sun Hotspot, Oralce JRockit, IBM J9, Taobao JVM,Hotspot有MetaSpace,JRockit以及J9是没有这个区域
-
JVM内存知识 在JDK8之前的HotSpot JVM,有个区域叫做“永久代(permanent generation), 通过在命令⾏设置参数-XX:MaxPermSize来设定永久代最⼤可分配的内存空间
-
如果JDK8⾥⾯设置了PermSize 和 MaxPermSize 会被忽略并给出警告
-
作⽤:该块内存主要是被JVM⽤来存放 class 和 mate 信息的,当 class 被加载 loader 的时候就会被存储到该内存区中,如⽅法的编译信息及字节码、常量池和符号解析、类的层级信息,字段,名字等
-
异常:java.lang.OutOfMemoryError: PermGen space
原因: 永久代空间不够,类太多导致
-
jdk8的修改 JDK8 HotSpot JVM 使⽤本地内存来存储类元数据信息,叫做 元空间(Metaspace)在默认情况下Metaspace的⼤⼩只与本地内存⼤⼩有关
-
常⽤的两个参数
-XX:MetaspaceSize=N 指Metaspace扩容时触发FullGC的初始化阈值 -XX:MaxMetaspaceSize=N 指⽤于限制Metaspace增⻓的上限,防⽌因为某些情况导致Metaspace⽆限的使⽤本地内存 不管两个参数如何设置,都会从20.8M开始,然后随着类加载越来越多不断扩容调整直到最⼤
- 查看⼤⼩
jstat -gc pid MC: current metaspace capacity MU: mateaspace utilization 单位是KB
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· DeepSeek在M芯片Mac上本地化部署
2021-08-25 vue常见错误