jvisualvm.exe 是 Java VisualVM 的可执行文件,Java VisualVM 是一款功能强大的免费工具,它整合了多个 JDK 命令行工具,为 Java 应用程序提供了可视化的性能分析和调优功能。
jvisualvm.exe 具有以下主要功能和特点:
内存监测:可以实时查看 Java 应用程序的内存使用情况,包括堆内存、非堆内存(如方法区、直接内存等)的使用量和变化趋势。帮助您发现内存泄漏等问题。
CPU 分析:监测应用程序的 CPU 使用率,帮助找出消耗 CPU 资源较多的方法和线程。
线程监控:显示应用程序中运行的线程状态、线程阻塞和等待情况,有助于诊断线程死锁等问题。
类加载分析:了解类的加载和卸载情况,以及类在内存中的占用情况。
垃圾回收监测:观察垃圾回收的频率和时间,优化垃圾回收策略。
性能分析:可以对应用程序进行性能采样和剖析,获取方法调用的耗时和调用次数等信息,以便进行性能优化。
插件扩展:支持安装各种插件来增强功能,如用于监测 Tomcat 等应用服务器的插件。
远程连接:能够连接到远程运行的 Java 应用程序进行监控和分析。
jvisualvm 界面预览:
上图中,左边显示了“本地”JVM 进程。双击“com.huangx.springboot.SpringbootWebserviceApplication”菜单,查看该 JVM 进程的详细信息,如下图:
上图显示了当前 JVM 进程的基本信息,如:JVM参数、系统属性等基础信息。
上图显示了当前进程的 CPU、内存、类、线程统计信息。
上图显示了当前进程的所有线程,以及每个线程的状态信息。
上图可以抽取显示当前进程的CPU信息、内存信息。
上图中,显示了当前进程的性能信息,使用 Profiler(分析器)具有以下重要作用:
方法调用分析:它可以详细地记录方法的调用情况,包括调用次数、执行时间等,帮助您找出应用程序中耗时较长的方法。
性能瓶颈定位:通过对 CPU 使用率和内存分配的分析,能够准确地定位到导致性能问题的关键代码段。
内存分配追踪:监测对象的创建和内存分配情况,有助于发现不必要的内存消耗和潜在的内存泄漏。
线程活动洞察:了解线程在不同方法中的执行时间和等待时间,帮助诊断线程相关的性能问题,如线程阻塞、竞争等。
性能数据可视化:以直观的图表和图形展示性能数据,使性能问题更加清晰易懂。
性能优化指导:基于收集到的性能数据,为优化应用程序的性能提供有针对性的建议和方向。
总的来说,jvisualvm 的 Profiler 功能为开发人员提供了深入了解应用程序性能特征的手段,有助于提高应用程序的性能和稳定性。
最后,jvisualvm 还支持安装插件,如下图:
注意:默认软件中心地址不能使用,可以使用 https://visualvm.github.io/pluginscenters.html 地址,下面将修改插件中心的地址,如下图: