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

JVM(五)JVM优化之工具「建议收藏」前言本章讲解JVM优化中常见的工具的使用方法1.概念在JVM优化的道路上,任重道远,我们需要借助JDK本身的工具进行分析。2.工具详情下面介绍的小工具均在JAVA_HOME/bin下,我的路径是这样的。1)jps:JVMProcessStatusTool,显示系统内所有的JVM进程语法: -q 只输出LVMID,省略主类名称; …

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

前言

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

方法

1.概念

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

2.工具详情

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

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

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

语法:

  • -q
    只输出LVMID,省略主类名称;

  • -m
    输出虚拟机进程启动时传给主类函数的参数;

  • -l
    输出主类的完成package名称或者jar包完整路径名;

  • -v
    输出虚拟机启动时的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优化之工具「建议收藏」

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

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

  • 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优化之工具「建议收藏」

附录一:jvisualvm添加GC插件

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

1.工具->插件

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

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

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

3.一路下一步

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

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

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

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

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

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 关于C语言数组的输入与输出[通俗易懂]

    关于C语言数组的输入与输出[通俗易懂]先摆代码:#include#includeintmain(){ chara[8];//定义数组,不设初值 chara[8]={‘a’};//定义数组,设置初值,这样其余为\0 scanf(“%s”,a);//第一种输入方式 inti=0;//第二种输入方式 for(;i<=sizeof(a)-1;i++) { char

    2022年7月11日
    14
  • 阿姨想让13岁的儿子学Java编程,我拒绝了

    阿姨想让13岁的儿子学Java编程,我拒绝了大家好,我是锋哥;先爆丑照,为了你们有勇气继续阅读下去;前一段时间,有个阿姨找我学java,我懵逼了。我以为阿姨学着玩玩的,我就同意了。她说过段时间找我报名;后来,阿姨又找我阿姨想让她13岁的儿子跟我学编程,我想了下13岁应该六年级或者初一,不正是学习科学文化基础知识的时候吗。我这人有原则,有底线,也不想坑人,孩子太小,应用编程真不适合,也会耗费大量的时间和精力,耽误学业。孩子学应用编程前,应该至少有初中毕业文化,计算机简单基础,英语基础,应用软件基础,如果可以,还需要了解计算机组成原

    2022年4月30日
    57
  • java给链表赋值_Java链表操作代码[通俗易懂]

    java给链表赋值_Java链表操作代码[通俗易懂]/****/packagecom.cherish.SwordRefersToOffer;/***@authoracer**/publicclasstest_22链表中倒数第k个节点{/****/publictest_22链表中倒数第k个节点(){//TODO自动生成的构造函数存根}publicstaticclassListNode{privateintval;ListNode…

    2022年5月2日
    218
  • “国产Linux“的终结

    “国产Linux“的终结

        现今,“国产Linux”不见了,也不再有人提起了,人们的思想获得了大解放。此话根据何在?
     
         6月29日,《2010‘开源中国,开源世界》高峰论坛在北京举行。高峰论坛的议事议程及其特意安排充分显示出,在我国开源发展历史上,这次会议是一个具有特殊意义的发展里程碑。近半年来,我国

    2022年5月13日
    39
  • 数据库系统原理及MySQL应用教程_三十讲之第三讲读后感

    数据库系统原理及MySQL应用教程_三十讲之第三讲读后感此文为极客时间MySQL实战45讲第13节的笔记一、表数据的存放位置表数据既可以存在共享表空间里,也可以是单独的文件。这个行为是由参数innodb_file_per_table控制的:OFF

    2022年8月16日
    5
  • 小米4usb调试模式怎么打开_安卓打开USB调试模式

    小米4usb调试模式怎么打开_安卓打开USB调试模式我们要将小米4与电脑进行连接,就必须要打开小米4系统的调试模式,不同的系统版本打开调试模式的方法有所不同,在这里我们就谈谈小米4各种系统版本打开USB调试模式的方法。1、针对Android2.1-2.2版本的系统:我们在桌面按小米4手机上的“菜单键”会弹出菜单,点击“设置”选项进入系统的设置菜单列表,然后进入“应用程序”—“开发”,就可以看到“USB调试”选项,我们勾选即可。2、针…

    2022年9月13日
    1

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号