前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >JVM(五)JVM优化之工具「建议收藏」

JVM(五)JVM优化之工具「建议收藏」

作者头像
全栈程序员站长
发布2022-09-07 15:12:31
2230
发布2022-09-07 15:12:31
举报
文章被收录于专栏:全栈程序员必看

大家好,又见面了,我是你们的朋友全栈君。

前言

本章讲解JVM优化中常见的工具的使用

方法

1.概念

在JVM优化的道路上,任重道远,我们需要借助JDK本身的工具进行分析。

2.工具详情

下面介绍的小工具均在JAVA_HOME/bin下,我的路径是这样的。

JVM(五)JVM优化之工具「建议收藏」
JVM(五)JVM优化之工具「建议收藏」

1)jps:JVM Process Status Tool,显示系统内所有的JVM进程

语法:

  • -q 只输出LVMID,省略主类名称;
  • -m 输出虚拟机进程启动时传给主类函数的参数;
  • -l 输出主类的完成package名称或者jar包完整路径名;
  • -v 输出虚拟机启动时的JVM参数

使用示例:

JVM(五)JVM优化之工具「建议收藏」
JVM(五)JVM优化之工具「建议收藏」

2)jstat:JVM Statistics Monitoring Tool,可以收集JVM相关的运行数据

语法:

jstat命令稍许有些复杂,它主要有以下参数:

  1. option:选项,jstat主要提供以下选项:
    • -class 监视类的装载/卸载数量、总空间以及类装载所耗时间;
    • -gc 监视java heap情况,包括eden区和两个survivor区、old区、永久区等的容量,已用空间和GC时间等信息;
    • -gccapacity 监视内容与-gc基本是一致的,-gccapacity的输出包括heap各个区域使用到的最大最小空间;
    • gcutil 监视内容同样与-gc基本一致,-gcutil的输出主要是heap各个区域使用空间占总空间百分比;
    • gccause-gcutil功能一致,但是会额外输出导致上一次gc的原因;
    • gcnew 监视young区gc情况;
    • gcnewcapacity 监视内容与-gcnew基本相同,-gcnewcapacity的输出包括使用到的最大最小空间;
    • -gcold 监视old区gc情况;
    • -gcoldcapacity 监视内容与-gcold基本相同,-gcoldcapacity的输出包括使用到的最大最小空间;
    • -gcpermcapacity 输出永久代使用到的最大最小空间。注意:JDK 8废除了永久代,引入了Metaspace,这个命令在JDK 8的环境下就不能使用了,那要看元数据空间相关情况,使用-gcmetacapacity即可
    • -compiler 输出JIT编译器编译过的方法以及耗时等信息;
    • -printcompilation 输出以及被JIT编译的方法
  2. vmid:虚拟机进程id,这时候小伙伴们肯定又要开始疑惑了,这个vmid与lvmid又有什么区别?其实对于本地虚拟机进程,它俩没任何区别,但是如果是远程虚拟机进程,它俩就有区别了,远程虚拟机进程vmid格式应该是这样: [protocol:][//] lvmid [@hostname[:port]/servername]
  3. interval:查询时间间隔;
  4. count:查询次数。

使用示例:

JVM(五)JVM优化之工具「建议收藏」
JVM(五)JVM优化之工具「建议收藏」

其中的内涵大家自行百度。

其他的还有如下的小工具大家可以自行查找。

  • jinfo:Configuration Info for Java,显示JVM配置信息;
  • jmap:Memory Map for Java,用于生成JVM的内存快照;
  • jhat:JVM Heap Dump Browser,用于分析heapdump文件,它可以建立一个http/html服务,使用者可以在浏览器上查看分析结果;
  • jstack:Stack Trace for Java,显示JVM的线程快照。

前面的都是虾兵蟹将,接下来出场的才是重头戏,也就是融合了前面所有工具功能的图形化用户界面jvisualvm

该工具极其强大,是JVM分析的首选!

JVM(五)JVM优化之工具「建议收藏」
JVM(五)JVM优化之工具「建议收藏」

附录一:jvisualvm添加GC插件

jvisualvm还有个功能就是可以添加我们所需要的插件,其中GC插件尤为重要!

1.工具->插件

JVM(五)JVM优化之工具「建议收藏」
JVM(五)JVM优化之工具「建议收藏」

2.选择可用插件->Visual GC

JVM(五)JVM优化之工具「建议收藏」
JVM(五)JVM优化之工具「建议收藏」

3.一路下一步

JVM(五)JVM优化之工具「建议收藏」
JVM(五)JVM优化之工具「建议收藏」

4.完成后重启应用程序即可看到如下tab页

JVM(五)JVM优化之工具「建议收藏」
JVM(五)JVM优化之工具「建议收藏」

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/136504.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年6月3,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 方法
    • 附录一:jvisualvm添加GC插件
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档