我们今天要讲解的工具位于JDK目录的bin目录下,大家可以发现该目录下有很多可执行文件,这里都是JDK为我们提供用于分析内存的一些工具。我们重点看看jconsole.exe,JAVA监视与管理控制台。 
先运行以下程序: 
 
  再双击运行可视化工具,这里会让你选择要监控的程序,我们选择刚刚运行的程序。结果如图: 
 
  该页面只是一个概览页面,我们可以点进去上方导航栏的内存页,进去后我们可查看内存中各部分的使用情况图表,这里我们选择Eden区的查看。 
 
  可看到内存使用呈锯齿波状态,因为我们在循环中不断的产生新对象,而新对象又在Eden区中创建,所以内存使用会不断增加,当达到所设定的最大值后就会进行内存的回收,由于每个新生的对象都被存入到了List中,因此都不属于垃圾对象(因为处于关系网中),所以就要复制到另一个Survivor中,如果另一个Survivor区也满了,就会复制到年老区了。可查看上图右下角绿色图,在运行中会动态更新的,变化情况和我刚刚说的是一样的。 
  当我们使用多线程的时候,会经常出现程序一直运行不会停止的情况,有可能出现死锁,有可能出现了死循环,可以通过该工具检测出来,先运行以下程序: 
 
  再点击导航栏上的线程进入线程查看页: 
 
  进入后页面长这个样子,看下方红色标记部分,根据我们刚刚执行的代码来看,代码开启了一个线程,作用就是执行死循环,线程的名字为默认的“Thread-0”。因为有了死循环,所以程序无法正常退出,查看堆栈跟踪,发现程序停在Test类的第14行,查看代码可发现那里是个死循环。注意:这里只是个测试例子,因此线程的名字用的是默认的,在实际环境中应为每个线程命名,在跟踪调试的过程中会大大减少工作量。 
  接下来我们来测试死锁的情况,运行以下代码: 
 
  代码中线程1先申请obj1,再申请obj2;线程2先申请obj2,再申请obj1。如果执行次数多了就会出现死锁,我们依然来看线程的监控台: 
 
  可以看出来,这么多的线程都处于等待中,不能正常退出,我们随机点一个查看,可以看到他的状态是BLOCKED。他需要的锁被线程31所持有。我们再看看31的线程(就不发图了),可以看到他需要的锁被线程30所持有。那么我们再看看30的线程,可以发现,30线程所需要的锁被31号线程所持有。他们互相等待,互相不释放,最终导致死锁,也导致后面那么多的线程处于BLOCKED状态。

  这个可视化的工具我们就先讲这么多吧。从内存到线程,是我们在实际环境中不管是优化还是编码都会经常遇到的问题。

原文链接:https://blog.csdn.net/sunhuaqiang1/article/details/61914317

(十三)JAVA 可视化分析工具相关推荐

  1. JVM进阶(十二)——JAVA 可视化分析工具

    JVM进阶(十二)--JAVA 可视化分析工具   经过前几篇博文对堆内存以及垃圾收集机制的学习,相信小伙伴们已经建立了一套比较完整的理论体系!本篇博客就根据已有的理论知识,通过可视化工具来实践一番. ...

  2. JVM进阶(十二):JAVA 可视化分析工具实战

    文章目录 一.前言 二.JAVA监视与管理控制台 三.拓展阅读 一.前言 经过前几篇博文对堆内存以及垃圾收集机制的学习,相信小伙伴们已经建立了一套比较完整的理论体系!本篇博文就根据已有的理论知识,通过 ...

  3. java dump分析工具_java性能分析与常用工具

    本次源码已放在Github:https://github.com/nateshao/jvm-tuning 个人博客 https://nateshao.gitee.io http://www.nates ...

  4. 开源可视化分析工具,操作简单使用方便,快来种草

    关注TJ君,回复"武功秘籍"免费获取计算机宝典书籍 马上就要新的2022年啦,TJ君祝大家元旦快乐,2022年大家不要忘记继续关注TJ君哦,TJ君会努力给大家分享好东西让大家继续学 ...

  5. 开源java性能分析工具_Java性能监控:您应该知道的5个开源工具

    开源java性能分析工具 鲜为人知但有用:开源应用程序性能监视的状态 对于任何应用程序来说,最重要的事情之一就是性能. 我们要确保用户获得他们能获得的最佳体验,并想知道我们的应用已启动并正在运行. 这 ...

  6. java dump分析工具_Java 性能分析工具 (2):Java 内置监控工具

    引言 本文为 Java 性能分析工具系列文章第二篇,第一篇:操作系统工具.在本文中将介绍如何使用 Java 内置监控工具更加深入的了解 Java 应用程序和 JVM 本身.在 JDK 中有许多内置的工 ...

  7. 开课吧:常见的数据可视化分析工具有哪些?

    数据分析工作的完成,既需要拥有良好的方式方法,同时还需要借助分析工具,这也是数据分析师需要熟练使用数据分析工具的主要原因,那么常见的数据可视化分析工具有哪些呢? 常见的数据可视化分析工具有哪些? 1. ...

  8. 基于 SpringBoot+Vue 的开源数据可视化分析工具

    简介 DataEase 是开源的数据可视化分析工具,帮助用户快速分析数据并洞察业务趋势,从而实现业务的改进与优化.DataEase 支持丰富的数据源连接,能够通过拖拉拽方式快速制作图表,并可以方便的与 ...

  9. GIS大数据可视化分析工具

    俗话说的好:工欲善其事,必先利其器!一款好的工具可以让你事半功倍,尤其是在大数据时代,更需要强有力的工具通过使数据有意义的方式实现数据可视化,还有数据的可交互性:我们还需要跨学科的团队,而不是单个数据 ...

最新文章

  1. 卷积神经网络的复杂度分析
  2. 百度地图之根据地图上的点确定地图的放缩比例
  3. 偈颂一首《静心莲》【心静如止水,雷打无波澜。佛前忏一刹,万千罪消融。】
  4. 深度有趣 | 01 前言
  5. 【解析】案例4-1.7 文件传输 (25 分)
  6. 官博翻译 | .NET Core 即 .NET 的未来
  7. 力扣76,最小覆盖字串(JavaScript)
  8. JNI 之 HelloWorld
  9. 滚动效果--marquee的使用
  10. 10个宝藏级编程资源,让你省下8K学费不香吗
  11. 两端“弱智”的HTML代码
  12. 【DCVRP】基于matlab遗传和粒子群算法求解带容量的车辆路径规划问题【含Matlab源码 1034期】
  13. vue把数据导出为Excel表格的方法
  14. 微信开发者工具的使用和各个文件的作用
  15. VBA实现Excel模块筛选高级应用场景!
  16. 绿色全要素生产率数据(2004-2017年)
  17. 高仙与吾尚联合打造“人+机+纳米材料”石材养护新模式 首批60落地上海环球港
  18. 截部分陈宏对用线段树解矩形并的轮廓(picture 问题的深入讨论)
  19. Java程序的基本结构
  20. 配置永久systemd日志

热门文章

  1. 《颠覆者·周鸿祎自传》读后感
  2. Android材料设计动画之触摸反馈
  3. 如何关闭windows 2003浏览网页时信任站点添加提示以及解决不能加入可信任的站点
  4. AB变频器常见故障的原因
  5. 6.面向对象,构造器,递归以及对象创建时内存分析(内含代码与练习)
  6. android手机通讯录备份还原代码,安卓手机误删联系人恢复及备份技巧总汇
  7. After Effect(AE)PuppetTools脚本插件使用
  8. 计算机维修活动新闻稿,【自主维修】“自主维修”我们在行动——记热力作业部全力开展自主维修...
  9. 扫描版pdf重排 linux,强大的桌面用 PDF 重排工具:K2pdfopt 简明教程
  10. 关于Centos安装后无法联网的解决方案(命令行模式)