jdk自带检测内存,cpu,线程 的工具——jvisualvm

简介:

一个很强大的免费工具:JDK6自带的jvisualvm。

其实还有个自带工具 jconsole   这里不多说, 用法跟 jvisualvm 差不多。 都是输入命令启动

这个东西我以前听过说,但一直没有用过。看到它提供的截图中可以看到各线程的运行状态,所以准备试一下。这里记录一下使用过程。

1。启动

在命令行输入jvisualvm。如果jdk安装正确的话(6.x以上版本),就会看到如下的一个窗口:

wKiom1Lh8zqzVqilAAJcr60e71Y391.jpg

看起来相当简洁,不像是很强大的样子。

2。运行一个Java程序IncTestN,jvisualvm会自动找到它

wKioL1Lh8y2i83zWAAI__zTrNtI026.jpg

3.右键点击它,”打开”

wKiom1Lh83SR4wzmAAMuzI4Dwvs605.jpg

可以看到它有很多标签页,可以让我们监测程序的各种数据。默认没有这么多,我其实安装了一些jvisualvm的插件。

4。查看jvm参数及系统属性

wKiom1Lh852CP_ejAAGtGaBF6iU708.jpg

5。查看cpu、内存、类、线程的统计数据

wKioL1Lh85jDV0wpAANsvNefF4M165.jpg

注意,右边第一个还可以查看PermGen。对于scala程序,因为它产生了大量的类定义,所以PermGen有可能会不足,可通过该选项查看PermGen,适当调整:

wKiom1Lh89bTpcLUAACg1Ag3LfY376.jpg

可以看到,对于本程序来说,PermGen还是比较充分的,无须调整。

6。查看各线程运行情况

这个是重点,我们需要知道各线程的运行情况,特别是否被synchronized阻塞了。

wKioL1Lh88_RPRhPAANJCP_EtBI937.jpg

注意右下角,有四个状态说明,分别是:

  1. 运行(Running):我们最喜欢的状态。说明该线程正在执行代码,没有问题。

  2. 休眠(Sleeping):调用了Thread.sleep后的状态,说明线程正停在某个Thread.sleep处

  3. 等待(Wait):手动调用了wait方法,或者某些IO操作,在阻塞中等待数据。

  4. 监视(Monitor):这里就是我想找的问题了。它表示线程想执行一段synchronized中的代码,但是发现已经有其它线程正在执行,自己被block了,只能无奈地等待。如果这种状态多,说明程序需要好好优化。

从上面的这个图可以看到,下面多个线程都处于”监视”状态。多个线程都卡在了独木桥的一头过不去,干不了活干着急呢。

当然这个程序是我专门设计成这样的,存在着严重的性能问题,需要好好优化。

7。查看各线程的统计数据

如果我们需要一些统计数据,比如某个线程总共运行了多少时间,”运行”状态有多久(或百分比),休眠、等待、监视有多久,则需要用到”表”这一页。

wKioL1Lh8-my3Un5AAOkgoWZ2D4707.jpg

从中可以看到这个悲催的程序,几分所有的时间都用在了synchronized的阻塞上了。只有百分之零点几的时间在运行中,效率可真低啊。

还可以使用图表方式来看这些数据,得到更直观的体验:

wKiom1Lh9C6zvhG5AAFac7alLS4002.jpg

8。查看各方法的运行时间

想不想程序中到底是哪些方法一直在运行?可使用”抽样器”功能:






      本文转自yjflinchong 51CTO博客,原文链接:http://blog.51cto.com/yjflinchong/1354417,如需转载请自行联系原作者



相关文章
|
26天前
|
JSON Java Serverless
nacos常见问题之cpu和内存占用高如何解决
Nacos是阿里云开源的服务发现和配置管理平台,用于构建动态微服务应用架构;本汇总针对Nacos在实际应用中用户常遇到的问题进行了归纳和解答,旨在帮助开发者和运维人员高效解决使用Nacos时的各类疑难杂症。
141 0
|
2月前
|
弹性计算
2024阿里云幻兽帕鲁/Palworld服务器价格表(CPU/内存/带宽/磁盘收费标准)
2024年阿里云幻兽帕鲁专用服务器的价格根据不同的配置有所不同。 • 4核16G配置的价格为32元/月,如果选择购买3个月,则价格为96元。 • 8核32G配置的价格为90元/月,如果选择购买3个月,则价格为271元。 另外,还有配置为4核16G10M带宽的服务器,其价格为26元/月起。而8核32G10M带宽的价格也是90元/月。
95 1
|
25天前
|
数据可视化 关系型数据库 编译器
【C/C++ 单线程性能分析工具 Gprof】 GNU的C/C++ 性能分析工具 Gprof 使用全面指南
【C/C++ 单线程性能分析工具 Gprof】 GNU的C/C++ 性能分析工具 Gprof 使用全面指南
99 2
|
19天前
|
存储 缓存 PHP
阿里云服务器实例、CPU内存、带宽、操作系统选择参考
对于使用阿里云服务器的用户来说,云服务器的选择和使用非常重要,如果实例、内存、CPU、带宽等配置选择错误,可能会影响到自己业务在云服务器上的计算性能及后期运营状况,本文为大家介绍一下阿里云服务器实例、CPU内存、带宽、操作系统的选择注意事项,以供参考。
阿里云服务器实例、CPU内存、带宽、操作系统选择参考
|
25天前
|
缓存 Linux iOS开发
【C/C++ 集成内存调试、内存泄漏检测和性能分析的工具 Valgrind 】Linux 下 Valgrind 工具的全面使用指南
【C/C++ 集成内存调试、内存泄漏检测和性能分析的工具 Valgrind 】Linux 下 Valgrind 工具的全面使用指南
62 1
|
1月前
|
弹性计算 固态存储 Linux
2024年阿里云服务器租用详细价格表(CPU/内存/带宽/系统盘)
2024阿里云服务器租用优惠价格表,轻量服务器2核2G3M带宽轻量服务器一年61元,2核4G4M带宽轻量服务器一年165元12个月,ECS云服务器e系列2核2G配置、3M固定带宽、40G ESSD Entry云盘,99元一年、2核4G服务器30元3个月、2核4G配置365元一年、2核8G配置522元一年,云服务器u1、云服务器c7、g7和r7优惠价格表,CPU内存带宽系统盘配置详细报价:
736 3
|
1月前
|
弹性计算 固态存储 调度
阿里云服务器部署配置选择全攻略,ECS实例规格、CPU内存配置
阿里云服务器部署配置选择全攻略,ECS实例规格、CPU内存配置,CPU内存、公网带宽和系统盘怎么选择?个人用户选择轻量应用服务器或ECS通用算力型u1云服务器,企业用户选择ECS计算型c7、通用型g7云服务器,阿里云百科分享阿里云服务器配置选择方法
|
1月前
|
弹性计算 固态存储 调度
阿里云服务器选购指南_2024新版CPU内存带宽系统盘选择攻略
阿里云服务器选购指南_2024新版CPU内存带宽系统盘选择攻略,CPU内存、公网带宽和系统盘怎么选择?个人用户选择轻量应用服务器或ECS通用算力型u1云服务器,企业用户选择ECS计算型c7、通用型g7云服务器,阿里云百科分享阿里云服务器配置选择方法
|
1月前
|
弹性计算 固态存储 调度
阿里云配置服务器详细指南_2024新版CPU内存带宽系统盘选择
阿里云配置服务器详细指南_2024新版CPU内存带宽系统盘选择,阿里云服务器配置怎么选择?CPU内存、公网带宽和系统盘怎么选择?个人用户选择轻量应用服务器或ECS通用算力型u1云服务器,企业用户选择ECS计算型c7、通用型g7云服务器,阿里云百科分享阿里云服务器配置选择方法
|
2月前
|
弹性计算 大数据 测试技术
阿里服务器租用多少钱一年?阿里云服务器租用价格表(最新CPU/内存/带宽/磁盘收费标准)
阿里服务器租用多少钱一年?阿里云服务器租用价格表(最新CPU/内存/带宽/磁盘收费标准)。阿里云服务器的租用费用因实例类型、地域、配置等因素而有所不同,价格范围可以从几百元到几千元不等。2024年阿里云服务器租用费用价格表更新,云服务器ECS经济型e实例2核2G、3M固定带宽99元一年、ECS u1实例2核4G、5M固定带宽、80G ESSD Entry盘优惠价格199元一年,轻量应用服务器2核2G3M带宽轻量服务器一年61元、2核4G4M带宽轻量服务器一年165元12个月、2核4G服务器30元3个月,幻兽帕鲁4核16G和8核32G服务器配置,云服务器ECS可以选择经济型e实例、通用算力u1实