查看整个内存状况
jmap -heap [pid]
本地运行一个test程序后,找到对应java进程id,输入jmap时发生错误

发现是本地装了两个版本的jdk,需要进入到一个jdk的bin目录下执行jmap命令。

查看堆中对象详细占用情况
jmap -histo [pid]

导出整个JVM的dump文件
jmap -dump:format=b,file=文件名 [pid]
jhat是sun 1.6及以上版本中自带的一个用于分析JVM 堆DUMP 文件的工具,基于此工具可分析JVM HEAP 中对象的内存占用情况
jhat -J-Xmx1024M [file]
执行后等待console 中输入start HTTP server on port 7000 即可使用浏览器访问 IP:7000

打开浏览器,输入http://localhost:7000


点击show heap histogram

可以看出各个类的实例数量和使用的内存大小。
eclipse Memory Analyzer
Eclipse 提供的一个用于分析JVM 堆Dump文件的插件。借助这个插件可查看对象的内存占用状况,引用关系,分析内存泄露等。查看堆栈信息
jstack [pid]

jvm调优成熟的工具已经有很多:jconsole、大名鼎鼎的VisualVM,IBM的Memory Analyzer等等。
本文介绍了多种JVM内存分析工具及其使用方法,包括jmap、jhat、Eclipse Memory Analyzer等,帮助开发者掌握如何诊断和解决Java应用程序中的内存问题。

3188

被折叠的 条评论
为什么被折叠?



