Java 虚拟机性能分析工具
2021/6/18 14:26:57
本文主要是介绍Java 虚拟机性能分析工具,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
这两天看了下Java虚拟机性能分析相关的东西,做一下总结,主要是jconsole和jvisualvm这两个工具,在java的jdk/bin里面都内置了
jconsole
分为本地连接和远程连接,我的不知道为啥本地连接连不上,所以用了远程连接,在idea运行的VM Option里面添加了如下参数
-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=8011 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false
注意里面有个
-Dcom.sun.management.jmxremote.port=8011
就是端口开放在8011,这样我们点击远程连接,输入localhost:8081就能登录了
比较重要的是内存和线程两个栏
MarkSweeP是老年代的GC,Scanvage是young GC,也可点击右上角按钮实现手动GC
线程栏里面记录的是首先是线程状态,比如RUNNABLE,(锁上的)WAITING,下面就是堆栈跟踪,也就是显示了当前线程是由哪些方法调用的堆栈,下面有个检测死锁的功能,可以检查程序有没有死锁,后面介绍的jvisulalvm能够自动检测,相对上更方便一点
jvisualvm
官方推荐工具,功能强大,而且可以集成插件,比如Visual GC,集成过程见https://blog.csdn.net/newbaby2012/article/details/117932447
概述
右上角有两个按钮,一个是执行垃圾回收,一个是堆DUMP,执行堆dump其实就是生成一个堆内存的快照
快照文件内容如下:
概要,这个不讲
主要讲下类:
这一栏就是各种类型的类占堆内存的大小及比例
选中其中某一行,比如String,右键,选择"在实例视图中显示",就能在实例数栏里面看到:
左下角就是String的值"malformed input around byte",右上角的字段,就是描述了这个字段的hash, 序列号,classLoader信息,可以看到String的classLoader为null,这个我记得原生类型的classLoader就是null(好像代表bootStraper加载器??)
接下来看下线程栏:
介绍下右上角按钮线程dump
点击以后也会生成一个dump文件,主要记录各个进程的堆栈信息,好像自动检测死锁以后,也会把死锁相关信息放到这里
这篇关于Java 虚拟机性能分析工具的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-05-19永别了,微服务架构!
- 2024-05-15鸿蒙生态设备数量超8亿台
- 2024-05-13TiDB + ES:转转业财系统亿级数据存储优化实践
- 2024-05-09“2024鸿蒙零基础快速实战-仿抖音App开发(ArkTS版)”实战课程已上线
- 2024-05-09聊聊如何通过arthas-tunnel-server来远程管理所有需要arthas监控的应用
- 2024-05-09log4j2这么配就对了
- 2024-05-09nginx修改Content-Type
- 2024-05-09Redis多数据源,看这篇就够了
- 2024-05-09Google Chrome驱动程序 124.0.6367.62(正式版本)去哪下载?
- 2024-05-09有没有大佬知道这种数据应该怎么抓取呀?