JVM--JVM上手工具VisualVM安装(堆内存观测工具插件)

简介: JVM学习之前一定要安装的一个工具,如果没有它所有的JVM学习都是在黑暗中行走。本文主要介绍VisualVM的安装
JVM学习之前一定要安装的一个工具,如果没有它所有的JVM学习都是在黑暗中行走。本文主要介绍VisualVM的安装

VisualVM 一款JVM监控的工具

在这里插入图片描述

官网地址:https://visualvm.github.io/,我们可以到官网下载它的windows客户端,也可以安装在IDEA中,不过个人建议使用IDEA安装该插件,避免不必要的空间浪费。

IDEA安装VisualVM

点击file->选择settings->点击plugins,按照下图搜索
在这里插入图片描述

点击安装从起IDEA即可。

配置VisualVM,然我们的IDEA启动的时候可以直接唤起VisualVM

点击file->选择settings->点击other settings找到我们刚安装VisualVM,设置如下两个路径,第一个java自带的工具,第二个jdk路径。
在这里插入图片描述

配置成功之后我们就可以看到如下标志

在这里插入图片描述

启动的时候就可以直接点击VisualVM插件启动程序了,只要是点击插件启动的,就可以直接唤起我们的VisualVM。差不多长下面这个样子

在这里插入图片描述

  • 为了更方便观察GC或者堆活动,我们安装一个VisualVM的插件

从VisualVM的官网进入插件中心

官网:https://visualvm.github.io/plugins.html
在这里插入图片描述

根据JDK选择对应的插件,我的是第一个

在这里插入图片描述

选中JDK后我们可以看到如下插件中心选项界面,下载GC

在这里插入图片描述

下载完成之后我们可以看到一个nbm的文件,这个时候我们需要唤起VisualVM,然后在VisualVM中安装该插件。我是用IDEA写了一个程序,如下:
public class Test {

    public static void main(String[] args) {

        for (; ; ) {
            A a = new A();
        }

    }

}

class A {
    String name;
    int age;
}

点击对应的启动按钮
在这里插入图片描述

这个时候我们就可以观测GC活动和堆的活动啦
在这里插入图片描述

目录
相关文章
|
4天前
|
缓存 Java
《JVM由浅入深学习九】 2024-01-15》JVM由简入深学习提升分(生产项目内存飙升分析)
《JVM由浅入深学习九】 2024-01-15》JVM由简入深学习提升分(生产项目内存飙升分析)
10 0
|
19天前
|
存储 Linux Android开发
Volatility3内存取证工具安装及入门在Linux下的安装教程
Volatility 是一个完全开源的工具,用于从内存 (RAM) 样本中提取数字工件。支持Windows,Linux,MaC,Android等多类型操作系统系统的内存取证。针对竞赛这块(CTF、技能大赛等)基本上都是用在Misc方向的取证题上面,很多没有听说过或者不会用这款工具的同学在打比赛的时候就很难受。以前很多赛项都是使用vol2.6都可以完成,但是由于操作系统更新,部分系统2.6已经不支持了,如:Win10 等镜像,而Volatility3是支持这些新版本操作系统的。
|
8天前
|
存储 Java C++
Java虚拟机(JVM)在执行Java程序时,会将其管理的内存划分为几个不同的区域
【6月更文挑战第24天】Java JVM管理内存分7区:程序计数器记录线程执行位置;虚拟机栈处理方法调用,每个线程有独立栈;本地方法栈服务native方法;Java堆存储所有对象实例,垃圾回收管理;方法区(在Java 8后变为元空间)存储类信息;运行时常量池存储常量;直接内存不属于JVM规范,通过`java.nio`手动管理,不受GC直接影响。
18 5
|
6天前
|
存储 Java 对象存储
jvm内存模型剖析
当线程cpu时间片执行完后,线程进入休眠状态,当再次唤醒时,通过程序计数器确定指令执行到哪一行,然后继续往下执行。
18 1
|
8天前
|
存储 Java C++
Java虚拟机(JVM)管理内存划分为多个区域:程序计数器记录线程执行位置;虚拟机栈存储线程私有数据
Java虚拟机(JVM)管理内存划分为多个区域:程序计数器记录线程执行位置;虚拟机栈存储线程私有数据,如局部变量和操作数;本地方法栈支持native方法;堆存放所有线程的对象实例,由垃圾回收管理;方法区(在Java 8后变为元空间)存储类信息和常量;运行时常量池是方法区一部分,保存符号引用和常量;直接内存非JVM规范定义,手动管理,通过Buffer类使用。Java 8后,永久代被元空间取代,G1成为默认GC。
21 2
|
12天前
|
监控 算法 Java
Java虚拟机(JVM)使用多种垃圾回收算法来管理内存,以确保程序运行时不会因为内存不足而崩溃。
【6月更文挑战第20天】Java JVM运用多种GC算法,如标记-清除、复制、标记-压缩、分代收集、增量收集、并行收集和并发标记,以自动化内存管理,防止因内存耗尽导致的程序崩溃。这些算法各有优劣,适应不同的性能和资源需求。垃圾回收旨在避免手动内存管理,简化编程。当遇到内存泄漏,可以借助VisualVM、JConsole或MAT等工具监测内存、生成堆转储,分析引用链并定位泄漏源,从而解决问题。
24 4
|
14天前
|
算法 Java
Java垃圾回收(Garbage Collection,GC)是Java虚拟机(JVM)的一种自动内存管理机制,用于在运行时自动回收不再使用的对象所占的内存空间
【6月更文挑战第18天】Java的GC自动回收内存,包括标记清除(产生碎片)、复制(效率低)、标记整理(兼顾连续性与效率)和分代收集(区分新生代和老年代,用不同算法优化)等策略。现代JVM通常采用分代收集,以平衡性能和内存利用率。
38 3
|
19天前
|
算法 安全 Java
JVM系列4-垃圾收集器与内存分配策略(二)
JVM系列4-垃圾收集器与内存分配策略(二)
24 0
JVM系列4-垃圾收集器与内存分配策略(二)
|
4天前
|
存储 缓存 算法
详解JVM内存优化技术:压缩指针
详解JVM内存优化技术:压缩指针
|
4天前
|
Java UED 开发者
JVM逃逸分析原理解析:优化Java程序性能和内存利用效率
JVM逃逸分析原理解析:优化Java程序性能和内存利用效率