首页 > 编程语言 >Java自带的jvisualVM简单介绍

Java自带的jvisualVM简单介绍

时间:2023-07-19 15:12:55浏览次数:30  
标签:Java 虚拟机 应用程序 内存 监控 jvisualVM 自带 VisualVM

首先来介绍下visualVM的工作原理:

  VisualVM 是一款 Java 虚拟机监控和分析工具,它可以帮助开发人员实时监控Java应用程序的性能和内存使用情况。VisualVM 的工作原理是基于jJava 虚拟机提供的Java Management Extensions (JMX)技术。

  JMX 是一种Java 平台的管理和监控技术,它提供了一组 API,用于管理和监控Java应用程序。VisualVM 利用JMX技术与Java虚拟机进行通信,获取 Java 应用程序的运行状态和性能数据

  VisualVM可以监控Java 应用程序的CPU 使用率、内存使用情况线程状态、垃圾回收情况等。它还可以生成堆转储文件,用于分析Java 应用程序的内存泄漏问题
  VisualVM 的工作原理可以分为以下几个步骤:

  1.连接到Java 虚拟机
    VisualVM 通过JMX 技术连接到Java 虚拟机,获取Java 应用程序的运行状态和性能数据。连接过程需要指定 Java 虚拟机的进程ID或主机名和端口号。
  2.获取Java 应用程序的运行状态和性能数据
    VisualVM 通过JMX 技术获取 Java 应用程序的运行状态和性能数据,包括 CPU 使用率、内存使用情况、线程状态、垃圾收情况等。这
    些数据可以帮助开发人员分析 Java 应用程序的性能问题和内存泄漏问题。
  3.显示 Java 应州程序的运行状态和性能数据
    VisualVM将获取的 Java 应用程序的运行状态和性能数据显示在界面上,包括 CPU 使用率、内存使用情况、线程状态、垃圾回收情况等。开发人员可以通过界面上的图表和表格来分析 Java 应用程序的性能问题和内存泄漏问题

  4.生成转储文件
    VisualVM可以生成堆转储文件,用于分析 Java 应用程序的内存泄漏问题。堆转储文件包含 Java 应用程序的内存使用情况和对象引用关系,开发人员可以通过分析堆转储文件来定位内存泄漏问题
    VisualVM 是一款非常实用的 Java 虚拟机监控和分析工具,它的工作原理基于JMX 技术,可以帮助开发人员实时监控Java 应用程序的性能和内存使用情况,定位性能问题和内存泄漏问题.

JVisualVM监控jvm

在Java的bin目录下找到jvisualvm.exe,双击打开。

 

本地监控:

点击“监视”,可以查看CPU,内存,栈,线程等

 

远程监控:

 

 

 

 

标签:Java,虚拟机,应用程序,内存,监控,jvisualVM,自带,VisualVM
From: https://www.cnblogs.com/taider/p/17565162.html

相关文章

  • 小结_第一个Java程序
    总结:Java程序的编写与执行:步骤1:编写.在后缀名为.java的文件中编写Java代码,该文件称为源文件步骤2:编译.针对后缀名为.java源文件进行编译,生成字节码文件.格式:javac源文件名.java步骤3:运行.针对于编译后生成的字节码文件,进行解释运行.格式:java字节码......
  • 设计模式-享元模式在Java中的使用示例-围棋软件
    场景享元模式简介当一个软件系统在运行时产生的对象数量太多,将导致运行代价过高,带来系统性能下降等问题。例如在一个文本字符串中存在很多重复的字符,如果每一个字符都用一个单独的对象来表示,将会占用较多的内存空间,那么我们如何去避免系统中出现大量相同或相似的对象,同时又不......
  • 如何在 Java 8 中将 List 转换为可变参数对象
    我有一个函数(findByNames)接受传播参数,如下例所示:List<Users>findByNames(String...names){...}作为参数,我有一个列表:List<String>names=asList("john","abraham");所以我想将names列表转换为传播对象以使用findByNames函数,这可以使用Java8吗?我试过这个解......
  • JAVA-- 在Java8 Parallel Stream中如何自定义线程池?
    使用ParallelStream时,在适当的环境中,通过适当地使用并行度级别,可以在某些情况下获得性能提升。如果程序创建一个自定义ThreadPool,必须记住调用它的shutdown()方法来避免内存泄漏。ParallelStream默认使用的线程池如下代码示例,ParallelStream并行处理使用的线程池是ForkJoi......
  • Java 生成旋螺矩阵
    @TestpublicvoidvirtualMain(){int[][]matrix=generateMatrix(9);MyArray.printSquareArray(matrix,2);}publicint[][]generateMatrix(intn){int[][]res=newint[n][n];intsquare=n*n,i=(int)......
  • 【技术积累】Java中的常用类【一】
    Math类Math类是Java中的一个数学工具类,提供了一系列常用的数学方法。下面是Math类的常用方法及其案例:abs()返回一个数的绝对值。intnum=-10;intabsNum=Math.abs(num);System.out.println(absNum);//输出:10解释:abs()方法返回num的绝对值,即10。ceil()返回大于或等......
  • java parallelStream 线程堵塞问题笔记
    定义:Stream(流)是JDK8中引入的一种类似与迭代器(Iterator)的单向迭代访问数据的工具。ParallelStream则是并行的流,它通过Fork/Join框架(JSR166y)来拆分任务,加速流的处理过程。最开始接触parallelStream很容易把其当做一个普通的线程池使用,因此也出现了上面提到的开始的时候打标,结束......
  • Java基础 变量、常量、作用域
    Java基础变量、常量、作用域变量-变量是什么:就是可以变化的量!-Java是一种强类型的语言,每个变量都必须声明其类型-Java变量是程序中最基本的存储单元,其要素包括变量名,变量类型和作用域**注意事项:1每个变量都有类型,类型可以是基本类型,也可以是引用类型2......
  • java协程线程之虚拟线程
    前言众所周知,java是没有协程线程的,在我们如此熟知的jdk1.8时代,大佬们想出来的办法就是异步io,甚至用并行的stream流来实现,高并发也好,缩短事件处理时间也好;大家都在想着自己认为更好的实现方式;在来说说吧,我为什么会在今天研究这个破b玩意儿呢,这事情还的从一个月前的版本维护说......
  • 影响 Java 程序的性能的因素和性能指标
    有哪些因素会影响Java程序的性能?执行速度:程序的反应是否迅速,响应时间是否足够短内存分配:内存分配是否合理,是否过多地消耗内存或者存在泄漏启动时间:程序从运行到可以正常处理业务需要花费多少时间负载承受能力:当系统压力上升时,系统的执行速度、响应时间的上升曲线是否平缓......