对于不同的Jvm及不同的jdk版本内存模型不同
内存区域 | 名称 | 作用 | 参数 | 异常 | 分析方法 | 解决方案 |
---|---|---|---|---|---|---|
Heap | 堆内存 | 存储对象 | -Xms -Xmx | Java.lang.OutOfMemeoryError:Java heap space | 使用内存分析工具查看问题 | 1.调大-Xmx,2.优化代码 |
Method Area | 方法区 | 1.加载的类信息,2.常量,3.静态变量,4.编译后代码 | -XX:PermSize -XX:MaxPermSize | Java.lang.OutOfMemoryError: PermGen space | 使用内存分析工具查看问题 | 1.调大-XX:MaxPermSize,2.优化代码 |
VM Stack | 虚拟机栈 | 1.局部基本数据类型,2.局部变量引用 | -Xss | StackOverflowError(很少出现):栈深度过大;OutOfMemoryError:拓展栈申请不到内存 | Jstack分析 | 1.调小-Xss,2调小-Xms -Xmx,3.优化代码,4.调大操作系统对jvm分配的内存(栈最大内存=操作系统分配内存-堆内存-方法区) |
Native Method Statck | 本地方法栈 | Native方法服务 | ||||
Program Counter Register | 程序计数器 | 下一条程序指令的字节码 | 无 | 无 | 无 | 无 |
注1:有写错地方欢迎指出,也欢迎补充
注2:Swap内存占满的问题遇到过,但是没搞定
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)