VisualGC插件使用

news2024/10/6 12:34:24

下载安装VisualVM

下载地址:Visual VM
在这里插入图片描述
mac系统选择macOS Application Bundle,下载完成后,双击dmg包安装即可,之后双击启动。

安装Visual GC 插件

点击菜单栏Tools,选择Pulgins,在第二个选项中找到Visual GC,选中,点击Install,然后一路下一步即可安装成功,如下图
在这里插入图片描述

插件界面介绍

安装完插件后重启软件,然后打开idea,之后可以在左边的Local中看到启动的idea应用,双击即可进入监控页面,点击Visual GC可以看到软件运行时的内存变化情况。如下图:
在这里插入图片描述
整个界面分为三个区域,分别为:Spaces、Graphs和Histogram。下面为其介绍:

Spaces

在这里插入图片描述
上图呈现了程序运行时我们比较关注的几个区域的内存使用情况。

  • Metaspace:方法区,如果JDK1.8之前的版本,就是Perm,JDK7和之前的版本都是以永久代(PermGen)来实现方法区的,JDK8之后改用元空间来实现(MetaSpace)。
  • Old:老年代
  • Eden: 新生代Eden区
  • S0和S1:新生代的两个 Survivor 区

Graphs

在这里插入图片描述

  • Compile Time:编译情况
    11459 compoles - 29.950s 表示编译总数为11459,编译总耗时为29.950s。
    一个脉冲表示一次JIT编译,脉冲越宽表示编译时间越长。

  • Class Loader Time:类加载情况
    23564 loaded,326 unloaded - 18.490s表示已加载的数量为23564,卸载的数量为326,耗时为 18.490s。

  • GC Time:总的(包含新生代和老年代)gc情况记录
    32 collections,288.879ms Last Cause:Allocation Failure表示一共经历了32次gc(包含Minor GC和Full GC),总共耗时288.879ms。

  • Eden Space:新生代Eden区内存使用情况
    (273.062M,34.125M): 32.796M,32 collections,288.879ms表示Eden区的最大容量为273.062M,当前容量为34.125M,当前已使用32.796M,从开始监控到现在在该内存区域一共发生了32次gc(Minor GC),gc总耗时为288.879ms。

  • Survivor 0和Survivor 1:新生代的两个Survivor区内存使用情况
    (34.125M,4.250M):3.126M表示该Survivor区的最大容量为34.125M(默认为Eden区的1/8),当前已用3.126M。

  • Old Gen:老年代内存使用情况
    (682.688M,218.871M):137.316M,0 collections,0ms表示老年区的最大容量为682.688M,当前容量为218.871M,当前已用137.316MM,从开始监控到现在在该内存区域一共发生了0次gc(Full GC),gc总耗时为0ms,换算下可以看出单次Full GC要比Minor GC耗时长很多。

  • Metaspace:方法区内存使用情况
    (1.41G,145.496M):137.098M表示方法区最大容量为1.41G,当前容量为145.496M,当前使用量为137.098M。

Histogram

在这里插入图片描述

  • Tenuring Threshold:我们知道Survivor区中的对象有一套晋升机制,就是其中的每个对象都有一个年龄标记,每当对象在一次Minor GC中存活下来,其年龄就会+1,当对象的年龄大于一个阈值时,就会进入老年代,这个阈值就是Tenuring Threshold,要注意这个值不是固定不变的,一般情况下Tenuring Threshold会与Max Tenuring Threshold大小保持一致,可如果某个时刻Servivor区中相同年龄的所有对象的内存总等于Survivor空间的一半,那Tenuring Threshold就会等于该年龄,同时大于或等于该年龄的所有对象将进入老年代。
  • Max Tenuring Threshold:表示新生代中对象的最大年龄值,这个值在JDK1.8中默认为6,在JDK1.7及之前的版本中默认为15,可以通过参数-XX:MaxTenuringThreshold来指定。
  • Desired Survivor Size:Survivor空间大小验证阈值(默认是survivor空间的一半),用于给Tenuring Threshold判断对象是否提前进入老年代。
  • Current Survivor Size:当前Survivor空间大小,单位为字节(Byte,B)。
  • Histogram柱状图:表示Survivor中不同年龄段对象分布.

本文摘录自(简书: 链接: Visual GC 插件使用)

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

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

相关文章

【CSS】更改用户界面样式 ③ ( 取消文本域拖拽 | 代码示例 )

文章目录一、取消文本域拖拽二、文本域拖拽示例三、取消文本域拖拽示例一、取消文本域拖拽 textarea 文本域 在 默认状态下是可以进行拖拽的 , 在网页布局中 , 一般不会允许这种情况发生 , 任意拖拽文本域会影响网页的整体布局 ; 设置文本域不可拖拽样式 : resize: none;文本…

windows编程(4) - GDI绘图基础

基础概念 GDI:Graphic Device Interface 图形设备接口。GUI:Graphic User Interface 图形用户接口。HDC:Handle of Device Context: 图形设备上下文句柄。 字符界面的基本单位是字符。 图形界面的基本单位是像素。 像素&#…

从数据展示中汉字缺失了解字符编码知识

有人在使用皕杰报表时遇到如下问题: 有些汉字变成了“?”,这是为什么呢?实际上就是你用的字符集里没有这个汉字导致的,要想搞懂这个问题,还得从字符、字符集、字符编码说起。 所谓字符,就是各…

定时任务练习----Linux 定时发送邮件 ( QQ 邮箱 为例)

邮件设置 : 在 QQ 邮箱的最上面 ,点击设置。 在账户 这一栏,往下面走 找POP3 开头的栏目 在 POP3/SMTP 服务这一行,点击开启 ( 本身是 关闭状态 ) 关于 POP3 和 SMTP 服务需要做以说明 ; >>> 我…

技术管理笔记1

看点杂篇,整理下笔记: 目录: 1技术的本质 2 技术团队管理的本质 3 技术管理者的能力要求 4 技术管理者风格类型 5 实战案例分析: 一技术的本质 技术存在感低,缺乏话语权,以业务导向为主。 二 技术团…

Spring Cloud第二季--OpenFeign和Feign

文章目录一、Feign二、Feign和OpenFeign的区别三、案例测试1、eureka注册中心集群7001/70022、两个微服务3、OpenFeign一、Feign Spring Cloud Feign的介绍在Spring Cloud学习–声明式调用(Feign)中详细介绍。 简单回顾下,Feign是一个声明式…

UTF-8(Unicode Transformation Format)

文章目录一、Unicode示例代码:二、网络传输与Unicode三、UTF-8如何编码四、使用UTF-8转换传输Unicode五、利用Java-API进行UTF8编码和解码六、利用代码输出Unicode编码和UTF8编码七、手写UTF8编码、解码八、总结UTF8一、Unicode 示例代码: package demo…

【Ubuntu安装选项】

关于Ubuntu系统安装选项 [TOC](关于Ubuntu系统安装选项) 安装选项选择 一、*Try or Install Ubuntu 二、Ubunru (safe graphics) 三、OEM install (for manufacturers) 四、Test memory 总结 安装选项选择 在安装Ubuntu系统时会有四个选项,搜…

模型部署学习--有三AI(视频要收费So没学完)

视频地址:深度学习之模型部署 模型的整个使用流程 从模型训练到部署 一 部署平台选择: 1、在线服务器端部署,精度优先: 大模型/分布式(如千亿级参数模型GPT-3) 延迟不敏感(如以图搜图应用&am…

chatgpt批量写作-chatgpt批量生成文章

cchatgpt写作 ChatGPT是一种基于Transformer架构的自然语言处理技术,它可以用于文本生成和对话场景,可以辅助写作、创作等任务。以下是一些使用ChatGPT进行写作的方法和技巧: Fine-tuning预训练模型:ChatGPT模型预训练时需要大量…

数字孪生卫星:概念、关键技术及应用

源自:软件定义世界 摘 要 在分析卫星产业发展趋势与升级转型新需求后,为推动卫星与新技术融合发展,提升大型卫星工程的整体管理水平与流程管控能力,促进卫星产业数字化、网络化、智能化、服务化转型升级,将数字孪生技…

百度天工AIoT设备应用使能平台助力企业低成本开发

数字中国建设的顶层文件《数字中国建设整体布局规划》(以下简称《规划》)于近日印发,作为数字中国建设的重要基础,《规划》指出,要全面赋能经济社会发展,推动数字技术和实体经济的深度融合,产业…

C++语法(15)---- 继承

C语法(14)---- 模板进阶_哈里沃克的博客-CSDN博客https://blog.csdn.net/m0_63488627/article/details/130092939?spm1001.2014.3001.5501 目录 1.继承概念和定义 1.概念 2.定义 1.格式 2. 继承关系和访问限定符 2.基类和派生类对象赋值转换 3.…

ERTEC200P-2 PROFINET设备完全开发手册(5-2)

5.2 TIA 数据记录操作 在PLC的程序中,可以通过指令RDREC和WRREC读写数据记录,在参考代码里可以看到读写操作都实现了index 2的记录数据,并且初始化为: #define DEMO_RECORD "ABCDEFGH" 首先定义要写入和读出的数据…

【LeetCode】剑指 Offer(26)

目录 题目:剑指 Offer 51. 数组中的逆序对 - 力扣(Leetcode) 题目的接口: 解题思路: 代码: 过啦!!! 写在最后: 题目:剑指 Offer 51. 数组中…

数据库MySQL —— 锁

目录 一、概述 二、全局锁 三、表级锁 1. 表锁 2. 元数据锁 3. 意向锁 四、行级锁 1. 行锁 2. 间隙锁 / 临键锁 一、概述 锁 是计算机协调多个进程或线程并发访问某一资源的机制。在数据库中,除传统的计算资源(CPU、RAM、I/O)的争用以外&…

channel 源码解析(5问)

目录 1.channel底层数据结构是什么 2.channel创建的底层实现 3.channel 的发送过程 4.channel的接受过程 5.关闭 channel 1.channel底层数据结构是什么 channel底层的数据结构是hchan,包括一个循环链表和2个双向链表 type hchan struct {qcount uint // tota…

Linux命令·route

Linux系统的route命令用于显示和操作IP路由表(show / manipulate the IP routing table)。要实现两个不同的子网之间的通信,需要一台连接两个网络的路由器,或者同时位于两个网络的网关来实现。在Linux系统中,设置路由通…

BGP小型实验

实验分析 1.主要考察的是对BGP配置的熟练 2.实验需要在R1与R5分别发布一条路由可以在BGP 中使用network 网段 掩码命令 3.R1与R2,R4与R5是EBGP,而R2,R3,R4是IBGP 实验操作 1.配置接口ip,与环回路由 以R1为例 2.AS内部需要实现非直连的建立是需要保证IBGP内部是通的所…

网络编程之IP协议

🎉🎉🎉点进来你就是我的人了 博主主页:🙈🙈🙈戳一戳,欢迎大佬指点!人生格言:当你的才华撑不起你的野心的时候,你就应该静下心来学习! 欢迎志同道合的朋友一起加油喔🦾&am…