0%

java | 堆

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 所以,就不用这个命令了。

jconsole

请我喝杯咖啡吧~