JVM常用指令

news2025/1/18 20:09:22

JVM常用指令

  • 1.准备工作
  • 2.jps
  • 3. jconsole
  • 4.jstat
  • 5.jstack
  • 6.jmap
  • 7.jvisualvm工具
  • 8.自动dump内存信息

1.准备工作

在idea中编写代码

public class JVMTest {
    @Test
    public void test() throws InterruptedException {
        while (true) {
            Thread.sleep(1000);
            System.out.println(123);
        }
    }
}

配置虚拟机的设置
在这里插入图片描述
配置如下:保证堆大小始终是10M

-Xms10m -Xmx10m

在这里插入图片描述
之后运行程序即可。

2.jps

jps 查看java进程概述

在这里插入图片描述

3. jconsole

输入jconsole 打开java监控和管理控制台

在这里插入图片描述
选择
在这里插入图片描述

选择不安全链接
在这里插入图片描述
点击-内存,可以查看年轻代垃圾收集的次数
在这里插入图片描述
看右下角,鼠标悬浮第一列
在这里插入图片描述

看右下角,鼠标悬浮第二列
在这里插入图片描述

看右下角,鼠标悬浮第三列
在这里插入图片描述
可以发现峰值处发生GC
在这里插入图片描述
点击线程标签
在这里插入图片描述
点击VM概要
在这里插入图片描述

4.jstat

jstat 观察gc情况

常用

jstat -gcutil 进程号

在这里插入图片描述

查看年轻代gc信息

jstat -gcnew 进程号

在这里插入图片描述

查看老年代gc信息

jstat -gcold 进程号

在这里插入图片描述

5.jstack

jstack 查看进程内的线程信息

jstack 进程号

在这里插入图片描述

6.jmap

jmap 查看堆内存使用状况

常用指令
这里的file是当前路径

jmap -dump:file=文件名 进行号

在这里插入图片描述

文件生成
在这里插入图片描述

jmap -heap 进行号

在这里插入图片描述

7.jvisualvm工具

jdk中自带该工具,去jdk的安装目录中bin下找jvisualvm.exe用管理员打开即可
在这里插入图片描述
双击进入监控界面
在这里插入图片描述
概述中,可以看到堆内存配置的大小
在这里插入图片描述
监控中可以点击触发垃圾回收
在这里插入图片描述
点击堆dump类似jmap -dump 操作
在这里插入图片描述
点击dump之后,可以查看基本信息
在这里插入图片描述
点击类之后可以查看类的实例占用的内存大小
在这里插入图片描述
刚才下载的dump文件,可以用这个工具查看
在这里插入图片描述
在概要中可以查看信息
在这里插入图片描述
类中可以查看占用的内存
在这里插入图片描述
因为linux系统中没有相关的图形化界面,我们的做法是利用jmap -dump:file=文件名称 进程号 dump文件到指定路径,然后下载dump文件后,在本机windows系统中通过jvisualvm工具来查看。

8.自动dump内存信息

更改虚拟机配置

-Xms10m -Xmx10m -XX:+HeapDumpOnOutOfMemoryError

在这里插入图片描述
更改java代码

public class JVMTest {
    @Test
    public void test() throws InterruptedException {
        ArrayList<Integer> list = new ArrayList<>();
        int i = 0;
        while (true) {
            list.add(i);
        }
    }
}

点击运行,发现直接OOM了
在这里插入图片描述
我们去项目相关文件夹中,找到dump的文件
在这里插入图片描述
jvisualvm工具装载dump文件,通过概要查看
在这里插入图片描述
类中可以查看具体的错误信息
在这里插入图片描述

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

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

相关文章

Unity 入门精要01---标准光照模型

本节基础知识结构 基础光照部分 环境光 在标准光照模型中&#xff0c;我们会环境光来代替间接光照 Cambient g amient 我们可以在Windows->Rendering->Lighting->Enviroment进行修改Ambient 的Color 自发光 直接在最后片元着色器输出颜色之前把材质的自发光颜色添…

深圳大学计软《面向对象的程序设计》实验13 运算符重载

A. 三维坐标点的平移&#xff08;运算符重载&#xff09; 题目描述 定义一个三维点Point类&#xff0c;利用友元函数重载"“和”–"运算符&#xff0c;并区分这两种运算符的前置和后置运算。 要求如下&#xff1a; 1.实现Point类&#xff1b; 2.编写main函数&a…

关于2023年造林施工、林业设计资质,新办、年审的最新通知!

一、资质类别省林学会本年度开展认定的资质种类包括&#xff1a;造林绿化类&#xff08;含施工资质、监理资质&#xff09;、林业有害生物防治类&#xff08;含防治资质、监理资质&#xff09;和林业调查规划设计类。二、认定标准资质认定执行以下标准&#xff1a;1.造林绿化施…

边缘计算:万字长文详解高通SNPE inception_v3安卓端DSP推理加速实战

本文是在以下文章的基础上编写&#xff0c;关于SNPE环境部署和服务器端推理可以参考上一篇文章&#xff1a; 边缘计算&#xff1a;万字长文详解高通SNPE inception_v3推理实战_seaside2003的博客-CSDN博客 本文最/关键的是利用SNPE在安卓环境不同的runtimes&#xff08;CPU/G…

高通 Android10/12 4 6dof Camera+2RGBCamera异常处理经验总结

1 背景&#xff1a;此需求apk距离之前更改时间将近9个月&#xff0c;我们这边原来跟驱动那边对接指令和角度 后续没有改过&#xff0c;测试部说apk cameaid提示信息不正确。 2 原因&#xff1a;因为之前用的1.0基线&#xff08;Android 10) 后面由于客户功能需求变更&#xff…

进程信号生命周期详解

信号和信号量半毛钱关系都没有&#xff01; 每个信号都有一个编号和一个宏定义名称,这些宏定义可以在signal.h中找到,例如其中有定 义 #define SIGINT 2 查看信号的机制&#xff0c;如默认处理动作man 7 signal SIGINT的默认处理动作是终止进程&#xff0c;SIGQUIT的默认处理…

23届春招结束_分享java岗面试心得

23届春招结束_分享java岗面试心得 从一月10日开始投简历&#xff0c;经历了两个月的面试与学习&#xff0c;成功拿到了12k13薪的国企offer&#xff0c;春招结束了 一、经历秋招&#xff0c;被所谓的金九银十给坑惨了 在秋招的时候&#xff0c;经过网友&#xff08;美团java岗…

九龙证券|利好政策密集发布,机构扎堆看好的高增长公司曝光

新能源轿车销量和保有量快速增长&#xff0c;带来了充电桩商场的微弱需求。 日前&#xff0c;商务部部长王文涛表明&#xff0c;本年将在落实好方针的一起&#xff0c;活跃出台新方针办法&#xff0c;比方辅导当地展开新能源轿车下乡活动&#xff0c;优化充电等使用环境&#x…

Vue3中的h函数

文章目录简介简单使用参数使用计数器进阶使用函数组件插槽专栏目录请点击 简介 众所周知&#xff0c;vue内部构建的其实是虚拟DOM&#xff0c;而虚拟DOM是由虚拟节点生成的&#xff0c;实质上虚拟节点也就是一个js对象事实上&#xff0c;我们在vue中写的template,最终也是经过…

Unity RectTransform Scale Handler - 如何在Runtime运行时拖动缩放窗口尺寸

文章目录简介变量说明实现光标移入移出鼠标拖动距离Anchor 锚点目标尺寸扩展方向简介 本文介绍如何在Runtime运行时拖动缩放UI窗口的尺寸&#xff0c;如图所示&#xff0c;在示例窗口的左上、上方、右上、左方、右方、左下、下方、右下&#xff0c;分别放置了一个拖动柄&#…

Spring之基于注解方式实例化BeanDefinition(1)

最近开始读Spring源码&#xff0c;读着读着发现里面还是有很多很好玩的东西在里面的&#xff0c;里面涉及到了大量的设计模式以及各种PostProcessor注入的过程&#xff0c;很好玩&#xff0c;也很复杂&#xff0c;本文就是记录一下我学习过程中的主干流程。 在开始我们源码解读…

2023年湖北武汉中级工程师怎么申请?申报渠道有哪些?启程别

2023年湖北武汉中级工程师怎么申请?申报渠道有哪些&#xff1f;启程别 武汉市中级工程师怎么报名&#xff1f;很多人不知道中级职称怎么申请&#xff0c;在哪里申请&#xff0c;那么启程别来告诉大家&#xff0c;启程别是谁&#xff0c;进入百度搜索启程别就知道啦 武汉中级工…

【学习Docker(七)】详细讲解Jenkins部署SpringCloud微服务项目,Docker-compose启动

Jenkins部署SpringCloud微服务项目&#xff0c;Docker-compose启动 座右铭&#xff1a;《坚持有效输出&#xff0c;创造价值无限》 本文介绍使用Jenkins部署SpringCloud微服务项目&#xff0c;Docker-compose启动。 之前写过安装Jenkins的过程&#xff0c;这里就不写安装细节了…

[oeasy]python0099_雅达利大崩溃_IBM的开放架构_兼容机_oem

雅达利大崩溃 回忆上次内容 个人计算机浪潮已经来临 苹果公司迅速发展微软公司脱离mits准备做纯软件公司IBM用大型机思路制作的5100惨败 Commodore 64 既做计算机又做游戏机 计算机行业和游戏行业 跟随着底层技术不断迭代已经进入了战乱纷纷的年代最终又会如何呢&#xff1f…

31 openEuler使用LVM管理硬盘-管理物理卷

文章目录31 openEuler使用LVM管理硬盘-管理物理卷31.1 创建物理卷31.2 查看物理卷31.3 修改物理卷属性31.4 删除物理卷31 openEuler使用LVM管理硬盘-管理物理卷 31.1 创建物理卷 可在root权限下通过pvcreate命令创建物理卷。 # pvcreate [option] devname ...其中&#xff1…

【linux工具】Tmux简明教程

A Quick and Easy Guide to tmux (hamvocke.com) 一、说明 我们常用ubuntu&#xff0c;用altctlT实现终端窗口弹出。然而当需要多个终端一起工作&#xff0c;切换的效率就成了问题。 tmux是ubuntu下&#xff0c;终端窗口工具。该工具能实现多窗口分屏显示、多个会话在一个终端…

【13】linux命令每日分享——groupadd建立组

大家好&#xff0c;这里是sdust-vrlab&#xff0c;Linux是一种免费使用和自由传播的类UNIX操作系统&#xff0c;Linux的基本思想有两点&#xff1a;一切都是文件&#xff1b;每个文件都有确定的用途&#xff1b;linux涉及到IT行业的方方面面&#xff0c;在我们日常的学习中&…

时间复杂度的计算

个人主页&#xff1a;平行线也会相交 欢迎 点赞&#x1f44d; 收藏✨ 留言✉ 加关注&#x1f493;本文由 平行线也会相交 原创 收录于专栏【数据结构初阶&#xff08;C实现&#xff09;】 文章目录123456789时间复杂度&#xff08;就是一个函数&#xff09;的计算&#xff0c;…

Flutter开发圆形计时进度条RingProgressBar

演示 先看效果图&#xff1a; 由于无法截取动态图&#xff0c;我就截过程中的两张图片表达了&#xff0c;我想应该能看得懂。 功能1.设置进度条半径 2.设置进度条宽度 3.设置进度条最大值 4.设置进度条背景色以及前景色 5.是否显示进度条文字 6.文字样式设置 7.点击进度条和进…

机器学习100天(三十七):037 朴素贝叶斯-挑个好西瓜!

《机器学习100天》完整目录:目录 机器学习100天,今天讲的是:朴素贝叶斯-挑个好西瓜! 红色石头已经了解了贝叶斯定理和朴素贝叶斯法,接下来已经可以很自信地去买瓜了。买瓜之前,还有一件事情要做,就是搜集样本数据。红色石头通过网上资料和查阅,获得了一组包含 10 组样…