Heap
堆。
通过 new 关键字创建的对象都会使用堆内存。
特点
- 线程共享,堆中的对象都需要考虑线程安全的问题
- 有垃圾回收机制
可以通过 VM
参数 -Xmx
来调整。
堆内存诊断
- jps
- 查看当前系统有哪些 java 进程
- jmap 工具
- 查看堆内存占用情况
- jconsole 工具
- 图形界面的,多功能的检测工具,可以联系检测
jmap
根据 查看jvm用到的一些命令 Error: -heap option used 可知
对于
jdk8
之后的版本,不能再使用jmap -heap pid
的命令了,需要使用jhsdb jmap --heap --pid pid
根据 attach: task_for_pid(xxxx) failed: ‘(os/kern) failure‘ (5)可知
macOS
系统权限就是这样的不允许呀!无论你是升级JDK
版本,还是使用后sudo
都不行呀!
由于,我的系统是 MacBook
所以,就不用这个命令了。