jvisualvm学习

发布于:2024-10-09 ⋅ 阅读:(188) ⋅ 点赞:(0)

系列文章目录

JavaSE
基础知识、数据类型学习 万年历项目 代码逻辑训练习题
代码逻辑训练习题 方法、数组学习 图书管理系统项目
面向对象编程:封装、继承、多态学习 封装继承多态习题 常用类、包装类、异常处理机制学习
集合学习 IO流、多线程学习 仓库管理系统JavaSE项目
员工管理系统、多表查询、反射实现DBHelper学习 DML、DDL、数据库对象学习
JavaWeb
网络编程、各种标签、CSS学习 ECMAScript、BOM学习 DOM、jQuery学习
Servlet、JSP、Cookie、Ajax学习 融资管理系统JavaWeb项目
框架
MyBatis框架学习 逆向工程、Spring框架IOC、AOP学习 SpringMVC框架学习
SpringBoot框架学习 招聘网站框架项目 Vue介绍、窗体内操作、窗体间操作学习
Vue路由配置、网络请求访问框架项目、element组件介绍学习 标准管理系统Vue项目
微服务
Linux安装、Nginx反向代理、负载均衡学习 Docker学习 Jenkins学习
Nexus学习 Spring Security学习 RabbitMQ学习
Redis学习 MongoDB学习 MongoDB学习
Nacos学习 Spring Session学习 Spring Gateway学习
JSR 303学习 OpenFeign学习 Dubbo学习
Hystrix学习 Sentinel学习 JMeter学习
Seata学习


前言

本文我们要讲述:
jvisualvm
在下攸攸太上,我朋友的姐姐的老公结婚了。


一、jvisualvm的垃圾回收介绍

1. 内存管理介绍

在Java虚拟机(JVM)中,内存管理是一个重要的主题,尤其是垃圾回收(GC)机制。JVM的内存分为多个区域,其中最主要的两个区域是新生代(Young Generation)和老年代(Old Generation)。了解这些区域的特性和GC机制对于优化应用程序的性能至关重要。

2. 内存区域划分

2.1 新生代(Young Generation)

Eden区:新创建的对象首先被分配到Eden区。
Survivor区:包括两个Survivor区(S0 和 S1),用于存放从Eden区经过GC后仍然存活的对象。

2.2 老年代(Old Generation)

用于存放经过多次GC后仍然存活的对象,通常是生命周期较长的对象。

3. GC机制

3.1 Minor GC(局部 GC)

触发条件:当Eden区满时触发。
过程
将Eden区中存活的对象复制到S0区。
清空Eden区。
将S1区中存活的对象复制到S0区。
清空S1区。
S0和S1区交替使用。
特点:速度较快,因为只涉及新生代。

3.2 Major GC(全局GC)

触发条件:当老年代满时触发。
过程
对整个堆(包括新生代和老年代)进行垃圾回收。
通常使用标记-清除(Mark-Sweep)或标记-整理(Mark-Compact)算法。
特点:耗时较长,因为涉及整个堆。

3.3 优化策略

减少全局GC的触发
对象提升:通过调整对象提升到老年代的阈值,减少老年代的占用。
内存分配:合理分配内存,避免频繁触发GC。
优化新生代GC
调整Survivor区大小:确保Survivor区有足够的空间存放存活对象,避免频繁复制。
调整Eden区大小:根据应用的内存使用情况,合理调整Eden区的大小。

二、jvisualvm代码实现

1. 启动jvisualvm

在jdk安装环境下找到jvisualvm.exe
在这里插入图片描述
点击工具下的插件
在这里插入图片描述
插件中点击检查更新
在这里插入图片描述
在可用插件中选择Visual GC,点击安装
在这里插入图片描述
点击下一步
在这里插入图片描述
选择接受,安装
在这里插入图片描述
安装即可完成

2. 出现错误

如果出现如下错误
在这里插入图片描述
进入如下网址
https://visualvm.github.io/uc/8u131/updates.html
在这里插入图片描述

3. 选中要监控的线程

在这里插入图片描述
我们发送请求之后可以发现新生代会慢慢增加
在这里插入图片描述


总结

本文讲述了:
jvisualvm:虚拟机垃圾回收监控
在下攸攸太上,在下攸攸太上,在下攸攸太上,在下攸攸太上,在下攸攸太上,在下攸攸太上,在下攸攸太上,在下攸攸太上,在下攸攸太上,在下攸攸太上,在下攸攸太上,在下攸攸太上,在下攸攸太上!


网站公告

今日签到

点亮在社区的每一天
去签到