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

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

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • android 苹果 换机,苹果12怎么一键换机安卓?iPhone12一键换机功能操作步骤

    android 苹果 换机,苹果12怎么一键换机安卓?iPhone12一键换机功能操作步骤苹果12怎么从安卓一键换机?相信有很多朋友最近新购了iPhone12,但是原来安卓手机中有不少的联系人和文件资料,要是手动来备份还原,那就太麻烦了,所以这时候就需要用到一键换机功能了。下面我们就为大家带来了苹果12电脑端和手机端的一键换机教程,一起来看看吧!苹果12怎么一键换机安卓?iPhone12一键换机功能操作步骤苹果一键换机功能怎么操作1、使用QQ同步助手换机,我们可以在原来安卓或者旧苹果手…

  • navicat premium 15 激活码【2021最新】[通俗易懂]

    (navicat premium 15 激活码)本文适用于JetBrains家族所有ide,包括IntelliJidea,phpstorm,webstorm,pycharm,datagrip等。IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.cn/100143.html…

  • 浮动QQ在线咨询(js,c#,NET)[通俗易懂]

    浮动QQ在线咨询(js,c#,NET)[通俗易懂] 浮动QQ在线咨询(js,c#,NET)浮动在网页上面的QQ在线咨询代码:4@:O5V,o7_6];L7qb310波球论坛b310波球网,波球网,博球,博球网,行家心水,赛事推荐,赛事分析,资料库,足球赛事,篮球,NBA,赔率,比分,篮球数据,足球数据,分析,推荐+k0O1I2d$z6o,c”k.f(感谢:http://www.ijavascript.cn

  • h2数据库如何连接_怎样远程连接数据库

    h2数据库如何连接_怎样远程连接数据库H2数据库支持如下3种连接模式: 内嵌模式(通过JDBC进行本地连接,应用和数据库在同一个JVM中) 服务器模式(通过JDBC或ODBC或TCP/IP进行远程连接) 混合模式(同时支持本地和远程连接)数据库连接URL说明:TopicURLFormatandExamples嵌入式(本地)连接jdb

    2022年10月11日
  • 模糊PID控制算法的C++实现

    模糊PID控制算法的C++实现模糊PID的C++实现方法

  • VS2008序列号_苹果序列号过期什么意思

    VS2008序列号_苹果序列号过期什么意思转自:http://lanmaodream.blog.163.com/blog/static/212569007201291874945494/今天打开VS2008突然弹出图如下:为什么会出现上图这种情况呢?嘿嘿,咱使用的是试用版本哦!!!我的是Win7系统,其实各个系统都一样!不过在要输入序列号时,你会发现没有地方可以输入,这时你需要给VS2008打个补丁!!!打

发表回复

您的电子邮箱地址不会被公开。

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