jvisualvm 工具的使用

news2024/11/18 11:38:17

文章目录

  • Visual GC 插件下载
  • 代码示例
  • 说明
  • spaces 区域
    • Perm
    • Heap
  • Graphs 区域
    • Compile Time(编译时间)
    • Class Loader Time(类加载时间)
    • GC Time
    • Eden Space(Eden 区)
    • Survivor 0 / Survivor 1(S0 和 S1 区)
    • Old Gen(老年代)
    • Metaspace(元空间)

Visual GC 插件下载

打开 jvisualvm 工具之后,点击工具选项,然后点击插件
在这里插入图片描述
选中可用插件,可以发现,有很多的插件可安装
在这里插入图片描述
这里安装的是 Visual GC 插件
在这里插入图片描述
一步一步安装即可
在这里插入图片描述

代码示例

package com.java.demo;

import java.util.ArrayList;

/**
 * @author Woo_home
 * @create 2020/7/10 11:34
 */

public class HeapDemo {
    public static void main(String[] args){
    	// 这里一个 size 表示 1 M
        int size = 1024 * 1024 * 8;
        ArrayList<byte[]> list = new ArrayList<>();
        for (int i = 0; i < 1024; i++) {
            System.out.println("向 JVM 写入数据 " + (i + 1) + " M");
            try {
            	// 为了能在 jvisualvm 中能看到效果,这里设置延时 1 s
                Thread.sleep(1000);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
            // 每秒往堆中写入一个数据
            list.add(new byte[size]);
        }
    }
}

运行即可在 jvisualvm 监听该程序对应的进程,点击 Visual GC 即可查看堆内存的使用情况

说明

在这里插入图片描述
整个区域划分为三个部分,分别为 spaces、graphs、histogram

spaces 区域

代表虚拟机内存分布情况,从图中可以看出,虚拟机被分为 Perm、Old、Eden、S0、S1

Perm

英文名叫做 Permanent Generation,我们称之为永久代,Java 8 之后称为元空间

通过 VM Args:-XX:PermSize=128m -XX:MaxPermSize=256m 设置初始值与最大值

Heap

Java 堆(Java Heap)。它包括老年代(对应图中的 Old 区域)新生代(对应图中的 Eden、S0、S1 三个统称为新生代,分为 Eden 区和两个 Survivor 区域),它们默认是 8:1:1 分配内存

通过 VM Args:-xms512m -Xmx512m -XX:+HeapDumpOnOutofMemoryError -XX:SurvivorRatio=8 设置初始堆内存、最大内存、内存异常打印 dump、新生代内存、新生代内存分配比例(8:1:1),因为 Heap 分为新生代和老年代,所以 512M - 100M = 412M,老年代就是 412M(初始内存跟最大内存最好相等,防止内存不够时扩充内存或者 Full GC,导致性能下降)

Graphs 区域

Compile Time(编译时间)

在这里插入图片描述
图中 996 compiles 表示编译总数,1.413 s 表示编译累计时间。一个脉冲表示一次 JIT 编译,窄脉冲表示持续时间短,宽脉冲表示持续时间长

Class Loader Time(类加载时间)

在这里插入图片描述
图中 1675 loaded 表示加载类数量,42 unloaded 表示卸载的数量,905.329ms 表示类加载花费的时间

GC Time

在这里插入图片描述
图中 5 collections 表示垃圾收集的总次数,468.449 ms 表示垃圾收集花费的时间,last cause 表示最近垃圾收集的原因

Eden Space(Eden 区)

在这里插入图片描述
图中括号内的 315.500 M 表示最大容量,15.000M 表示当前容量,后面的 9.873 M 表示当前使用情况, 1 collections 表示垃圾收集次数,4.732 ms 表示垃圾收集花费时间

Survivor 0 / Survivor 1(S0 和 S1 区)

在这里插入图片描述
图中括号内的 105.500 M 表示最大容量,2.500 M 表示当前容量,之后的 0 值是当前使用情况

Old Gen(老年代)

在这里插入图片描述
图中括号内的 633.500 M 表示最大容量,633.500 M 表示当前容量,后面的 632.474 M 表示当前使用情况,4 collections 表示垃圾收集次数,463.717 ms 表示垃圾收集花费时间

Metaspace(元空间)

在这里插入图片描述
图中括号内的 1.008 G 表示最大容量,9.750 M 表示当前容量,8.973 M 表示当前使用情况

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1507971.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

23.复习

1.设置输出数字宽度 #include <iostream>using namespace std;int main(){int a123456789,b0,c-1;printf("%8d %8d %8d",a,b,c);return 0; }2.保留小数点位数 #include <iostream>using namespace std;int main(){double a;cin>>a;printf("…

SpringBoot整合MyBatisPlus实现增删改查

1.前言☕ 大家好&#xff0c;我是Leo哥&#x1fae3;&#x1fae3;&#x1fae3;&#xff0c;今天给大家带来关于精品SpringBoot专栏&#xff0c;暂且就给他起名为循序渐进学SpringBoot&#xff0c;这里我参考了我上一个专栏&#xff1a;循序渐进学SpringSecurity6。有需要的朋…

Websocket在Asp.net webApi(.net framework)上的应用

之前在写看板部分的web api的时候&#xff0c;都是通过Ajax在规定时间内轮询调用web api&#xff0c;这样简单省事&#xff0c;但是当看板多了&#xff08;并发量上来&#xff09;以后&#xff0c;比较消耗服务器的性能&#xff0c;所以最近研究了websocket&#xff0c;希望使用…

[Flutter]自定义等待转圈和Toast提示

1.自定义样式 2.自定义LoadingView import package:flutter/material.dart;enum LoadingStyle {onlyIndicator, // 仅一个转圈等待roundedRectangle, // 添加一个圆角矩形当背景maskingOperation, // 添加一个背景蒙层&#xff0c; 阻止用户操作 }class LoadingView {static f…

十堰网站建设公司华想科技具有10年的网站制作经验

2018年已经结束了。 华翔科技收到了很多客户的咨询&#xff0c;他们都有一个共同的问题&#xff1a;建一个网站需要多少钱&#xff1f; 但是&#xff0c;我们都会问&#xff1a;您有什么具体需求吗&#xff1f; 大多数人的答案是否定的&#xff0c;他们只是想打听一下价格。 十…

3款免费又实用的良心软件,功能强大到离谱,白嫖党的最爱

闲话不多说&#xff0c;直接上硬货&#xff01; 1、酷狗概念版 这款正版音乐APP可谓是“良心之作”。不论你是新用户还是老用户&#xff0c;只要踏入概念版的门槛&#xff0c;即可获得3个月VIP作为见面礼。更令人惊喜的是&#xff0c;每天只需轻松一点播放歌曲&#xff0c;即…

VideoDubber时长可控的视频配音方法

本次分享由中国人民大学、微软亚洲研究院联合投稿于AAAI 2023的一篇专门为视频配音任务定制的机器翻译的工作《VideoDubber: Machine Translation with Speech-Aware Length Control for Video Dubbing》。这个工作将电影或电视节目中的原始语音翻译成目标语言。 论文地址&…

【XR806开发板试用】新鲜出炉的蓝牙配网Demo

今天收到了极术社区寄来的礼物&#xff0c;非常感谢。为此今天突击贡献一份蓝牙配网的小Demo&#xff0c;由于我对BLE通信不是很熟&#xff0c;此Demo仅供演示&#xff0c;存在几个问题尚未解决&#xff1a; 无法实现广播名没有修改GATT表&#xff0c;直接套用例程的了没有实现…

【自动驾驶系列丛书学习】2.《自动驾驶汽车环境感知》学习笔记

《自动驾驶技术概论》学习笔记 致谢&#xff1a;作者&#xff1a;甄先通、黄坚、王亮、夏添 -------------------------------------------------------------------------------------------------------- 笔记目录 《自动驾驶技术概论》学习笔记 1.自动驾驶环境感知概述…

Python从0到100(三):Python中的变量介绍

前言&#xff1a; 零基础学Python&#xff1a;Python从0到100最新最全教程。 想做这件事情很久了&#xff0c;这次我更新了自己所写过的所有博客&#xff0c;汇集成了Python从0到100&#xff0c;共一百节课&#xff0c;帮助大家一个月时间里从零基础到学习Python基础语法、Pyth…

Day31-计算机基础1

Day31-计算机基础1 1. 网络基础介绍1.1 什么是网络&#xff1f;1.2 为什么要有网络&#xff1f;1.3 运维人员需要学习哪些网络知识&#xff1f;1.4 按作用范围对网络分类 2.网络设备知识2.1 网络传输介质及传输信号2.2 网卡设备2.3 中继器&#xff08;RP repeater&#xff09;2…

海思Hi3403V100方案双目视频融合模组测试

Hi3403V100是海思面向高端市场应用推出的专业 Ultra-HD Smart IP Camera SOC&#xff0c;该芯片最高支持四路sensor输入&#xff0c;支持最高4K60的ISP图像处理能力。 海思Hi3403V100方案双目视频模组采用了海思Hi3403V100方案核心板双目视频融合IMX334 Sensor板测试&#xff…

neo4j 删除从一个node开始的所有数据。

##一、 需求 删除红线右边重复的数据 二、 删除与中心点1的右边连线 2.1 中心点1橙色&#xff1a; <elementId>: 4:fbde4fa1-3453-4e00-91ce-92b16aec22e3:425 <id>: 425 fileName: /Users/guibing.gao/Desktop/lib2.2 与中新点1右边链接的node <elementId>…

助力头部银行10倍提升数据化运营效率,NoETL的破局之道丨爱分析活动

在数字化飞速发展的今天&#xff0c;企业经营者们逐渐认识到数据平台对于企业生产经营所不可或缺的价值。随着数据平台不断发展和进化&#xff0c;数据量、数据源、用数人群也日益增加&#xff0c;对于业务用数敏捷和数据管理有序同样带来了全新的挑战。数据应用层面&#xff0…

安卓studio安装

安卓studio安装 2024.3.11官网的版本&#xff08;有些翻墙步骤下载东西也解决了&#xff09; 这次写的略有草率&#xff0c;后面会更新布局的&#xff0c;因为截图量太大了&#xff0c;有需要的小伙伴可以试着接受一下哈哈哈哈 !(https://gitee.com/jiuzheyangbawjf/img/raw/ma…

【C++】关键字:auto

文章目录 1. 介绍2. 如何使用 1. 介绍 从C11开始&#xff0c;auto变成了类型指示符&#xff08;之前auto并不是这个作用&#xff09;。使用auto定义变量时必须对其进行初始化&#xff0c;在编译阶段编译器自动推导auto变量的实际类型。因此auto并非是一种“类型”的声明&#…

在 Python 中从键盘读取用户输入

文章目录 如何在 Python 中从键盘读取用户输入input 函数使用input读取键盘输入使用input读取特定类型的数据处理错误从用户输入中读取多个值 getpass 模块使用 PyInputPlus 自动执行用户输入评估总结 如何在 Python 中从键盘读取用户输入 原文《How to Read User Input From t…

【Idea】八种Debug模式介绍

1.行断点 在对应的代码行左侧边栏点击鼠标左键&#xff0c;会出现一个红色圆圈&#xff0c;以debug模式执行时当代码运行到此处则会停止&#xff0c;并可以查询相关上下文参数 2.方法断点 在方法左侧点击创建断点,在方法进入时会停止&#xff0c;同时可以右键断点&#xff0c;…

使用GraaVIM打包Linux平台本地镜像

1.创建实例&#xff0c;在WindTerm上面连接云服务器 2.安装Lrzsz文件上传工具 yum install lrzsz 3.上传打好的jar包 lrz 使用ls命令查看是否上传成功 3.安装gcc等环境 sudo yum install gcc glibc-devel zlib-devel 4.下载安装配置Linux下的GraaVIM、native-image 下载链…

联想小新电脑出现蓝屏问题解决(暂时没有解决)

电脑出现蓝屏&#xff0c;如下 搜索FAULTY_HARDWARE_CORRUPTED_PAGE寻找解决方案&#xff0c;找到较为靠谱的文章&#xff1a;记录蓝屏问题FAULTY_HARDWARE_CORRUPTED_PAGE 根据文章提示找到官方解答&#xff1a;Bug 检查 0x12B&#xff1a;FAULTY_HARDWARE_CORRUPTED_PAGE&…