概述
本文简述几种JDK常见的性能分析工具,并介绍其使用方法
带参数运行
在Elipcse中,进入运行配置页面,选择Argument,在下方虚拟机变量中加入verbose:gc参数可观察程序的gc情况,-XX:+PrintGCDetails参数可打印出gc的详细情况
其中GC表示Minor GC,Full GC表示Major GC,箭头前表示gc前占用内存,箭头后表示gc后占用内存,括号内为该带的总内存
几个命令行工具
运行java程序后,在命令提示符下输入命令,可检测程序的内存状况:
jps命令可查看当前运行的进程:
jstat -gc命令可查看进程的gc情况:
jstat -gcutil命令也可查看进程的gc情况:
jmap -heap命令可查看进程的堆内存使用情况:
包括堆配置、各带的使用情况
jmap -histo参数可查看类实例和内存占用情况
jmap -clstats可查询类装载器信息:
可视化工具VisualVM
在JDK目录的bin文件夹内包含了自带的VisualVM,不过在测试的过程中有很多bug,建议去官网下一个最新版
进入后可查看堆内存与metaspace占用:
已装载的类个数:
内存分析工具MAT
在VisualVM中点击堆内存(heap dump)可生成当前的堆内存分析文件,右键->保存可保存到本地,然后在Eclipse中点击工具栏 文件->打开,选择刚导出的堆内存文件,即可使用JDK的MAT工具分析堆内存。
MAT支持OQL查询语言,使用示例如下:
某类的所有对象实例:
select * from circularorbit.StellarSystem
大于特定长度 n 的 String 对象
大于特定大小的任意类型对象实例
所有包含元素数量大于 100 的 Collections 实例
最后
以上就是帅气绿茶为你收集整理的使用JDK自带工具进行性能分析的全部内容,希望文章能够帮你解决使用JDK自带工具进行性能分析所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复