我们今天要讲解的工具位于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. createDocumentFragment
  2. Linux的notifier机制在TP中的应用【转】
  3. 程序员整理的各种不错的工具
  4. 四个C++函数模板实例
  5. 数据库分区分表以及读写分离
  6. 使用pssh进行并行批量操作
  7. Leetcode--123. 买卖股票的最佳时间Ⅲ
  8. matplotlib 横坐标少了一个点_收藏起来!比 matplotlib 效率高十倍的数据可视化神器!...
  9. 软件设计师笔记---中央处理单元CPU
  10. 佳博打印机ip地址修改软件_win10系统搜索不到共享打印机的问题
  11. OrCAD的下载与安装的详细步骤
  12. 服务器中tomcat内存溢出配置文件修改
  13. 思维导图软件哪个好?盘点10款好用的思维导图软件
  14. scanf的用法大全
  15. 眼睛容易干燥疲劳怎么办?
  16. 视觉slam直接法,特征点法
  17. 2021强网杯全国网络安全挑战赛Writeup
  18. MPI大漩涡(单纯的floyd)
  19. 写字楼如何实现无线wifi短信验证登录?
  20. 谷歌地球的高清卫星影像数据都来源自哪里?用户如何下载谷歌影像?

热门文章

  1. java memory copy_Java Unsafe.copyMemory java.lang.IllegalArgumentException
  2. x波段微带带通hairpin滤波器的历史
  3. xenserver 安装新硬盘_怎么为为 XenServer 添加新磁盘
  4. java.lang.inc,Java 字符串的拼接详解
  5. developerWorks Linux 专栏
  6. Jcreator pro3.5:Configuration: Default 错误: 无效的标记: C:\HelloWorld.java:到底错在哪?
  7. 骗子公司:互联网安,网址是:http://www.helpidc.net
  8. 致电商小白:电商数据分析,你真的会吗?
  9. Unit 5: Windows Acquisition 5.1 Windows Acquisition Windows Forensic Imaging of Drives
  10. 计算机实训word报告,计算机实训报告Mcrosoft Word 文档.doc