VisualVM【实践 01】工具VisualVM下载使用及插件Visual GC示例说明HashMap初始化容量initialCapacity的影响(源码及visualvm_215.zip分享)

article/2025/10/25 1:03:18

VisualVM【官网】很难下载,懂得都懂 😢,简单叙述一下下载的过程:

  • 使用PC各种浏览器失败【❌】
  • 使用Android手机多个浏览器失败【❌】
  • 使用IOS手机多个浏览器,仅有Safari浏览器成功【🆗】

大家可以体会一下😃 当然,如果不想安装,可以直接在已安装的JDK目录下的bin内找到jvisualvm.exe而且是汉化版本的。网盘地址,有需要的小伙伴儿可以进行下载。

链接:https://pan.baidu.com/s/1PC6iewD8GvmD898spKT0tw
提取码:gow5

1.Visual VM 简介

来自官网的介绍:

在这里插入图片描述
简单翻译:

All-in-One Java 故障诊断工具: VisualVM 是一个集成命令行 JDK 工具和轻量级概要分析功能的可视化工具。设计用于开发和生产时使用。

对比一下JDK自带版本和下载的最新版本区别:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
总结一下区别:

  • JDK自带版本为汉化版本
  • 安装的插件版本不同
  • UI新版本稍好(JDK8可是6年前的东西了)

2. Visual GC 使用

2.1 插件安装

需要注意的是有可能安装失败,失败不可怕,重试几次就行了,具体安装过程这里不再赘述。插件安装步骤如下:

在这里插入图片描述

2.2 插件使用

安装后即可使用,部分工具需要进行配置,Visual GC 界面如下:

在这里插入图片描述

3.测试

项目中有一个这么一段代码new HashMap<>(2000000)大家知道 HashMap 最好是进行初始容量的设置,不设置则初始容量为static final int DEFAULT_INITIAL_CAPACITY = 1 << 4但是这个设置大小到底有没有实质上的影响呢?

3.1 代码

public class TestHashMapInitialCapacity {public static void main(String[] args) throws Exception {// 5s的倒计时是为了有时间打开 Visual GC 界面int sleepTime = 5;for (int i = sleepTime; i > 0; i--) {Thread.sleep(1000);System.out.println("CountDown:" + i);}HashMap<String, String> map = new HashMap<>(2000000);int itemSize = 128;String str = "HelloWorldHelloWorldHelloWorldHelloWorldHelloWorldHelloWorld!";for (int i = 1; i <= itemSize; i++) {Thread.sleep(100);map.put(str + i, str + i);System.out.println("i = " + i + ", map size = " + map.size() + ", map capacity = " + tableLength(map));}}/*** 用于查询 HashMap 实例对象的容量** @param hashMap HashMap实例对象* @return 容量* @throws Exception 可能的异常*/private static int tableLength(HashMap<?, ?> hashMap) throws Exception {Field table = HashMap.class.getDeclaredField("table");table.setAccessible(true);Object[] obj = (Object[]) table.get(hashMap);return obj.length;}
}

3.2 过程

初始容量从2->20000->200000000实际初始容量为2(21),32768(215),268435456(228)。

在这里插入图片描述
2 新生代的使用空间19.890M

在这里插入图片描述
20000 新生代的使用空间21.171M

在这里插入图片描述
200000000 新生代的使用空间21.810M老年代的使用空间为1.000G(10000000512M)

3.2 总结

通过以上测试可以说明以下实时:

  • HashMap对象是在put第一个元素时进行初始化的
  • 初始化容量时会分配空间
  • 为了消除存储字符串的影响初始化后仅放入一个对象的空间为(18.608M->18.609M->18.583M+1G

4.总结

工具很有针对性,具体使用还是要进行一定的学习,有很多插件可以使用,功能强大。


http://chatgpt.dhexx.cn/article/Mo1tjmNU.shtml

相关文章

深入理解Java虚拟机——VisualVM工具的下载及安装

目录 一、VisualVM工具的概述二、VisualVM工具的下载地址如下&#xff1a;三、VisualVM工具的安装步骤&#xff1a; 一、VisualVM工具的概述 VisualVM&#xff08;All-in-One Java Troubleshooting Tool&#xff09;是到目前为止随JDK发布的功能最强大的运行监视和故障处理程序…

vs = VirtualService

VirtualService 您是正确的。我混淆了Kubernetes中的资源类型。"vs"是Istio服务网格中的资源类型&#xff0c;代表Virtual Service&#xff08;虚拟服务&#xff09;。 Virtual Service是Istio中的一种路由规则&#xff0c;它定义了如何将请求路由到服务的不同版本…

深入理解java虚拟机(十一)VisualVM:多合-故障处理工具

文章目录 前言一、VisualVM兼容范围与插件安装二、生成、浏览堆转储快照三、分析程序性能四、BTrace动态日志跟踪结尾 前言 VisualVM在JDK 6 Update 7中首次发布&#xff0c;直到JRockit Mission Control与OracleJDK的融合工作完成之前&#xff0c;它都曾是Oracle主力推动的多…

visualvm安装并且讲解说明

Jvisualvm安装并且讲解说明 1.visualvm安装使用教程 1.visualvm安装使用教程 注意:JDK 1.8之前是自带的&#xff0c;我的是jdk11所以需要手动安装 安装软件地址: 链接&#xff1a;https://pan.baidu.com/s/1JEWpF6eyBCAVNo5rBEa08Q 提取码&#xff1a;8y37 安装教程 1.下载对应…

性能分析利器总结一《VisualVM》

VisualVM 随着JDK7而出现&#xff0c;位于JDK根目录下的bin目录下。运行环境需JDK1.6及以上&#xff0c;能监控JDK1.4以上版本的应用程序。 相比JConsole&#xff0c;感觉功能更强大&#xff0c;且可集成各类插件&#xff0c;使其更强大。Jconsole算是VisualVM的子集吧。另外…

VM 和 VC

一、vm 1、Vue的实例对象&#xff0c;以后简称vm。 (1) vm的隐式原型属性指向Vue的原型对象。 (2) VueComponent的原型对象的隐式原型属性指向Vue的原型对象。 二、vc 1、组件本质&#xff1a; 组件其实是一个名为VueComponent的构造函数&#xff0c;且不是程序员定义的&am…

杂记十五:VisualVM使用教程

一、插件下载 1.安装jdk并启动jvisualvm.exe 2.插件安装 点击已下载&#xff0c;第一次开启的时候已下载里面是空的&#xff0c;需要点击添加插件把已经下载的插件添加到已下载中。 如何下载插件&#xff1f; 下载地址&#xff1a;https://visualvm.github.io/pluginscente…

【visual studio】VsVim 2022

看起來很方便使用是VS的擴展和兼容VsVim配置教程VsVim使用教程&#xff08;以及简要vim介绍&#xff09;四种模式&#xff1a;normal,insert,visual,command True 那么有一个专门的命令模式的输入框 这个框还是很有必要的 vs的标签页之间切换 用ctl w 即可。我用的是小写的…

VisualVM使用方法

1、VisualVM 简介 VisualVM 是一个工具&#xff0c;它提供了一个可视界面&#xff0c;用于查看 Java 虚拟机 (Java Virtual Machine, JVM) 上运行的基于 Java 技术的应用程序&#xff08;Java 应用程序&#xff09;的详细信息。VisualVM 对 Java Development Kit (JDK) 工具所检…

性能分析神器VisualVM

性能分析神器VisualVM VisualVM 是一款免费的&#xff0c;集成了多个 JDK 命令行工具的可视化工具&#xff0c;它能为您提供强大的分析能力&#xff0c;对 Java 应用程序做性能分析和调优。这些功能包括生成和分析海量数据、跟踪内存泄漏、监控垃圾回收器、执行内存和 CPU 分析…

VisualVM安装,插件安装,各个面板信息讲解

本篇博文目录: 1.什么是VisualVM2.VisualVM安装3.VisualVM相关说明(各个面板信息)4.VisualVM安装插件(安装GC插件) 1.什么是VisualVM ① VisualVM 提供可视界面&#xff0c;用于查看 JVM运行应用程序的详细信息 ② VisualVM可以提供大量可视化的运行指标,是Java工程师最佳分析工…

java基础工具VisualVM介绍与详细使用

1.美图 2.介绍 官网 : http://visualvm.github.io/ VisualVM是JDK自带的一个用于Java程序性能分析的工具 VisualVM 是一个工具,它提供了一个可视界面,用于查看 Java 虚拟机 (Java Virtual Machine, JVM) 上运行的基于 Java 技术的应用程序(Java 应用程序)的详细信息。您…

VisualVM工具的使用

VisualVM工具的使用 VisualVM&#xff0c;能够监控线程&#xff0c;内存情况&#xff0c;查看方法的CPU时间和内存中的对 象&#xff0c;已被GC的对象&#xff0c;反向查看分配的堆栈(如100个String对象分别由哪几个对象分配出来的)。 VisualVM使用简单&#xff0c;几乎0配置&…

threejs加载obj文件

threejs加载并展示obj文件&#xff1a; 研究了一段时间&#xff0c;总结下&#xff0c;废话少说&#xff0c;直接上代码&#xff1a;<!DOCTYPE html> <html lang"en"><head><title>three.js webgl - loaders - OBJ loader</title><…

Java3D加载obj文件+mtl文件

Java3d入门学习可以参考这位博主大神——苏若年&#xff0c;关于Java3D学习的文章。下面给出他部分文章的链接&#xff1a; 文1 创建三维几何模型:[ http://www.cnblogs.com/dennisit/archive/2013/05/06/3063042.html ] 文2 加载外部Obj模型:[ http://www.cnblogs.com/dennisi…

[OpenGL]导入obj文件

通常来说我们构建一个模型是比较复杂的工作&#xff0c;那么我们还有什么途径获得模型呢。其中一种方法就是导入obj模型&#xff0c;不要被这个名词给吓到了&#xff0c;其实就是把一个制作好的模型保存到一个文件中&#xff0c;我们称为obj文件。 先上图片&#xff1a; 下面说…

vue 加载3D .obj文件

VUE项目 vue-cli 加载obj obj文件存放位置 public/static vue 引入obj 控件&#xff1a;Vue-3D-Model 安装&#xff1a;npm install vue-3d-model <!-- ThreeDCity.vue文件 --> <template><div class"ThreeJSCity"><model-obj class"…

glb转obj文件及构建简单obj文件

目录 一、转换二、构建1三、构建2 一、转换 提供几个转换的网址&#xff1a; https://anyconv.com/glb-to-obj-converter/ https://products.aspose.app/3d/conversion/glb-to-obj https://miconv.com/convert-glb-to-obj/ 二、构建1 自己构建简单obj&#xff1a; 新建文本文…

obj文件(1):obj文件用txt打开并且了解v,f,vn,vt的含义

obj文件:obj文件用txt打开并且了解v,f,vn,vt的含义 笔记obj文件的格式介绍**下载 Blender 软件** 来源&#xff1a;《Computer Graphics Programming in OpenGL Using C 》by V Scott Gordon John L Clevenger内容&#xff1a;介绍obj文件以txt文本形式打开后的标签v,f,vn,vt&a…

什么是obj文件

此文来源&#xff1a;https://www.cnblogs.com/ShadowHanlder/p/4410213.html 百度百科&#xff1a; 程序编译时生成的中间代码文件。目标文件&#xff0c;一般是程序编译后的二进制文件&#xff0c;再通过链接器(LINK.EXE)和资源文件链接就成可执行文件了。OBJ只给出了程序的…