当前位置: 首页 > news >正文

JVM常用指令

JVM常用指令

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

1.准备工作

在idea中编写代码

public class JVMTest {@Testpublic 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 {@Testpublic void test() throws InterruptedException {ArrayList<Integer> list = new ArrayList<>();int i = 0;while (true) {list.add(i);}}
}

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

相关文章:

JVM常用指令

JVM常用指令1.准备工作2.jps3. jconsole4.jstat5.jstack6.jmap7.jvisualvm工具8.自动dump内存信息1.准备工作 在idea中编写代码 public class JVMTest {Testpublic void test() throws InterruptedException {while (true) {Thread.sleep(1000);System.out.println(123);}} }…...

排序中常见的一些指标

1、错误率与精度 错误率与精度是分类任务中最常用的两种性能度量&#xff0c;错误率是指分类错误的样本占样本总数的比例&#xff0c;精度则是分类正确的样本数占样本总数的比例。 错误率&#xff1a; 精度&#xff1a; 2、准确率/召回率/FScore True Positive(真正例, TP)&…...

51单片机入门————数码管显示

我们在马路上看到的红绿灯&#xff0c;就是由数码管来实现的&#xff0c;就是其中可能加入了一些延时和转换数码管是通过控制138译码器与74HC245来控制数码管的亮灭与数字的显示电路原理图我们先讨论一个数码管数码管有共阳极和共阴极&#xff0c;我们现在使用的STC89C52是共阴…...

Spring事务未生效场景

一.抛出事务不支持的异常 原理&#xff1a; Spring事务默认支持RuntimeException异常&#xff0c;抛出的异常为RuntimeException异常及其子类异常事务均可生效&#xff0c;而我们日常常见的异常基本都继承自RuntimeException&#xff0c;所以无需指定异常类型事务也能生效。但…...

servlet注解开发

文章目录servlet注解开发内容回顾响应对象 HttpServletResponse重定向与请求转发ServletConfig简介案例ServletContext简介案例Servlet 注解开发简介注解使用案例WebServlet 注解详细参数综合的增删改查案例登录注册功能servlet注解开发 内容回顾 响应对象 HttpServletRespon…...

mysql一联合主键

联合主键就是用2个或2个以上的字段组成主键。用这个主键包含的字段作为主键&#xff0c;这个组合在数据表中是唯一&#xff0c;且加了主键索引。 可以这么理解&#xff0c;比如&#xff0c;你的订单表里有很多字段&#xff0c;一般情况只要有个订单号bill_no做主键就可以了&…...

openpnp - 判断吸嘴是否指定了正确的旋转轴

文章目录openpnp - 判断吸嘴座是否指定了正确的旋转轴概述笔记吸嘴单独矫正的时候Calibrate precise camera ↔ nozzle N1 offsets.ENDopenpnp - 判断吸嘴座是否指定了正确的旋转轴 概述 如果没有指定吸嘴座的正确旋转轴, 会因为对应吸嘴该旋转时不旋转, 而是另外一个空闲的吸…...

【办公类-19-03】办公中的思考——Python批量统一文件名的序号(保教主任整理打印文件)

背景需求&#xff1a;为迎接督导检查&#xff0c;保教主任从各条线收集文本资料。并在每个文件名称前手动编号。但是她嘀咕道&#xff1a;”为什么两套资料放在一个文件里就不是按照数字序号排序&#xff1f;&#xff0c;有的是1X-&#xff0c;有的是40X&#xff0c;看起来很乱…...

MySQL约束

约束约束总结约束 1、概念&#xff1a;约束是作用于表中字段上的规则&#xff0c;用于限制存储在表中的数据。 2、目的&#xff1a;保证数据库中数据的正确、有效性和完整性。 3、分类&#xff1a; 注意&#xff1a;约束是作用于表中字段上的&#xff0c;可以在创建表/修改表…...

x86 平台利用 qemu-user-static 实现 arm64 平台 docker 镜像的运行和构建

文章目录[toc]关于 docker 版本查看是否开启 experimental 功能开启 experimental 功能查看当前环境平台拉取一个 arm 平台的容器运行一个 arm 平台的容器整一个 qemu-user-static注册可支持的架构解释器尝试启动 arm64 镜像尝试启动 ppc64le 镜像后台运行 arm64 容器build 一个…...

找工作经验分享

好的简历的特点&#xff1a;简洁&#xff1a;不要使用花里胡俏的简历模板&#xff0c;一般就是一行行写下来那种就行主次分明&#xff1a;一定要有重点&#xff0c;让面试了解你强项是什么首先当然是突出技术&#xff0c;不要花大批篇幅在个人信息、兴趣爱好等&#xff0c;重点…...

C语言学习之路--操作符篇,从知识到实战

目录一、前言二、操作符分类三、算术操作符四、移位操作符1、左移操作符2、右移操作符五、位操作符拓展1、不能创建临时变量&#xff08;第三个变量&#xff09;&#xff0c;实现两个数的交换。2、编写代码实现&#xff1a;求一个整数存储在内存中的二进制中1的个数。六、赋值操…...

【华为OD机试2023】端口合并 C++ Java Python

【华为OD机试2023】端口合并 C++ Java Python 前言 如果您在准备华为的面试,期间有想了解的可以私信我,我会尽可能帮您解答,也可以给您一些建议! 本文解法非最优解(即非性能最优),不能保证通过率。 Tips1:机试为ACM 模式 你的代码需要处理输入输出,input/cin接收输入、…...

C++常用头文件整理

#include <iostream> 输入输出流&#xff0c;调用该函数使用cin&#xff0c;cout#include <iomanip> mainp是mainpular(操纵器)的缩写&#xff0c;可以调用一些函数&#xff0c;如fixed()<<setprecision()等#include <cmath> 调用数学函数#include &l…...

Linux内核4.14版本——drm框架分析(2)——connector分析

目录 1. drm_connector结构体 1.1 struct list_head head 1.2 struct drm_mode_object base 1.3 base.properties 1.4 uint32_t encoder_ids[DRM_CONNECTOR_MAX_ENCODER] 1.5 struct drm_encoder *encoder 1.6 struct list_head probed_modes 1.7 struct list_head mod…...

dev GridControl 按条件纵向合并单元格

dev GridControl 按条件纵向合并单元格 gridView5.OptionsView.AllowCellMerge true; gridView5.CellMerge gridView5_CellMerge; //自定义合并单元格监听事件void gridView5_CellMerge(object sender, DevExpress.XtraGrid.Views.Grid.CellMergeEventArgs e){int rowHandle1…...

aws eks 集群初始化过程中pause容器的启动逻辑

eks集群默认策略在磁盘使用量达到threshold时会清除镜像&#xff0c;其中pause镜像也可能会被清除 https://aws.amazon.com/cn/premiumsupport/knowledge-center/eks-worker-nodes-image-cache/ pause容器能够为pod创建初始的名称空间&#xff0c;pod的内的容器共享其中的网络空…...

Numpy专栏目录(长期更新)

文章目录数组基础文件与字符串多项式分布Numpy绝对可以说是支撑Python地位的最重要的包了&#xff0c;几乎所有能叫出名的Python计算库&#xff0c;都不可避免地调用了Numpy&#xff0c;Numpy官网也列出了一些&#xff0c;大致如下图这样&#xff0c;堪称科学计算领域的瑞士军刀…...

English Learning - L2 第1次小组纠音 [ɑː] [ɔː] [uː] 2023.2.25 周六

English Learning - L2 第1次小组纠音 [ɑː] [ɔː] [uː] 2023.2.25 周六共性问题分析大后元音 [ɑː]大后元音 [ɔː]后元音 [uː]我的发音问题后元音 [uː]大后元音 [ɑː] 和 [ɔː]纠音过程第一次第二次第三次共性问题分析 大后元音 [ɑː] 嘴唇过于松散&#xff0c;没…...

博客系统程序(页面设计)

咱们学习javaEE的目的就是完成一个网站.在当前学习的基础上,已经可以完成我们的博客系统的页面的设计了!!!首先我们要进行统筹规划:首先我们的博客页面将会有4个页面:1.博客列表页2.博客详情页显示一个博客的具体内容:3.登录页就是用户输入用户名和页面的地方4.博客编辑页发布新…...

网络编程(Modbus进阶)

思维导图 Modbus RTU&#xff08;先学一点理论&#xff09; 概念 Modbus RTU 是工业自动化领域 最广泛应用的串行通信协议&#xff0c;由 Modicon 公司&#xff08;现施耐德电气&#xff09;于 1979 年推出。它以 高效率、强健性、易实现的特点成为工业控制系统的通信标准。 包…...

Linux应用开发之网络套接字编程(实例篇)

服务端与客户端单连接 服务端代码 #include <sys/socket.h> #include <sys/types.h> #include <netinet/in.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <arpa/inet.h> #include <pthread.h> …...

手游刚开服就被攻击怎么办?如何防御DDoS?

开服初期是手游最脆弱的阶段&#xff0c;极易成为DDoS攻击的目标。一旦遭遇攻击&#xff0c;可能导致服务器瘫痪、玩家流失&#xff0c;甚至造成巨大经济损失。本文为开发者提供一套简洁有效的应急与防御方案&#xff0c;帮助快速应对并构建长期防护体系。 一、遭遇攻击的紧急应…...

突破不可导策略的训练难题:零阶优化与强化学习的深度嵌合

强化学习&#xff08;Reinforcement Learning, RL&#xff09;是工业领域智能控制的重要方法。它的基本原理是将最优控制问题建模为马尔可夫决策过程&#xff0c;然后使用强化学习的Actor-Critic机制&#xff08;中文译作“知行互动”机制&#xff09;&#xff0c;逐步迭代求解…...

Oracle查询表空间大小

1 查询数据库中所有的表空间以及表空间所占空间的大小 SELECTtablespace_name,sum( bytes ) / 1024 / 1024 FROMdba_data_files GROUP BYtablespace_name; 2 Oracle查询表空间大小及每个表所占空间的大小 SELECTtablespace_name,file_id,file_name,round( bytes / ( 1024 …...

高危文件识别的常用算法:原理、应用与企业场景

高危文件识别的常用算法&#xff1a;原理、应用与企业场景 高危文件识别旨在检测可能导致安全威胁的文件&#xff0c;如包含恶意代码、敏感数据或欺诈内容的文档&#xff0c;在企业协同办公环境中&#xff08;如Teams、Google Workspace&#xff09;尤为重要。结合大模型技术&…...

VTK如何让部分单位不可见

最近遇到一个需求&#xff0c;需要让一个vtkDataSet中的部分单元不可见&#xff0c;查阅了一些资料大概有以下几种方式 1.通过颜色映射表来进行&#xff0c;是最正规的做法 vtkNew<vtkLookupTable> lut; //值为0不显示&#xff0c;主要是最后一个参数&#xff0c;透明度…...

C++使用 new 来创建动态数组

问题&#xff1a; 不能使用变量定义数组大小 原因&#xff1a; 这是因为数组在内存中是连续存储的&#xff0c;编译器需要在编译阶段就确定数组的大小&#xff0c;以便正确地分配内存空间。如果允许使用变量来定义数组的大小&#xff0c;那么编译器就无法在编译时确定数组的大…...

浪潮交换机配置track检测实现高速公路收费网络主备切换NQA

浪潮交换机track配置 项目背景高速网络拓扑网络情况分析通信线路收费网络路由 收费汇聚交换机相应配置收费汇聚track配置 项目背景 在实施省内一条高速公路时遇到的需求&#xff0c;本次涉及的主要是收费汇聚交换机的配置&#xff0c;浪潮网络设备在高速项目很少&#xff0c;通…...

Linux 内存管理实战精讲:核心原理与面试常考点全解析

Linux 内存管理实战精讲&#xff1a;核心原理与面试常考点全解析 Linux 内核内存管理是系统设计中最复杂但也最核心的模块之一。它不仅支撑着虚拟内存机制、物理内存分配、进程隔离与资源复用&#xff0c;还直接决定系统运行的性能与稳定性。无论你是嵌入式开发者、内核调试工…...