使用jmap做java进程

Halcon Socket TCP通讯:从算子调用到工业视觉系统集成 本文详细介绍了Halcon Socket TCP通讯在工业视觉系统中的应用与优化技巧。从基础算子调用到高并发处理,再到与PLC、机器人及MES系统的集成实战,提供了全面的解决方案和性能优化建议,帮助开发者高效实现工业视觉系统的通讯需求。 阅读详情

使用jmap做java进程dump  

命令:jmap -dump:format=b,file=heap.bin <pid>


file:保存路径及文件名
pid:进程编号(windows通过任务管理器查看,linux通过ps aux查看)

dump文件可以通过MemoryAnalyzer分析查看,网址:http://www.eclipse.org/mat/,可以查看dump时对象数量,内存占用,线程情况等。

查看jvm内存使用情况的命令jmap

  (2012-04-03 10:09:29)
标签: 

内存使用

 

对象

 

物理内存

 

命令

 

占用

 

java

 

jmap

 

杂谈

分类: Java

jmap (linux下特有,也是很常用的一个命令)

观察运行中的jvm物理内存的占用情况。

参数如下:

-heap :打印jvm heap的情况
-histo: 打印jvm heap的直方图。其输出信息包括类名,对象数量,对象占用大小。
-histo:live : 同上,但是只答应存活对象的情况
-permstat: 打印permanent generation heap情况

命令使用:

jmap -heap 3409

可以观察到New Generation(Eden Space,From Space,To Space),tenured generation,Perm Generation的内存使用情况

输出内容:

jmap -histo 3409 | jmap -histo:live 3409

可以观察heap中所有对象的情况(heap中所有生存的对象的情况)。包括对象数量和所占空间大小。

输出内容:

写个脚本,可以很快把占用heap最大的对象找出来,对付内存泄漏特别有效。

 

如果结果很多,可以用以下命令输出到文本文件。

jmap -histo 3409 | jmap -histo:live 3409 > a.txt


如果你的Heap Dump文件超过了几百MB,那就不要再寄希望于jhat了,因为jhat需要数倍于dump文件的内存。这个时候你可以用MAT(Memory Analyzer),用MAT你可以在有2GB可用内存的机器上分析大约1GB左右的Dump文件。

生成Heap Dump文件的方法:

JMAP(Java Memory Map)

方法一:让运行中的JVM生成Dump文件
/usr/java/jdk/bin/jmap -F -dump:format=b,file=/path/to/heap/dump/heap.bin PID

方法二:让JVM在遇到OOM(OutOfMemoryError)时生成Dump文件
-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/path/to/heap/dump

用jhat分析Dump文件
注:只有在Dump文件比较小的时候才适合用jhat分析Dump文件
jhat(Java Heap Analysis Tool)
jhat -stack false -refs false -J-Xmx2g /path/to/heap/dump/heap.bin

用MAT分析Dump文件
MAT(Memory Analyzer)

http://www.eclipse.org/mat/

安装MAT插件


【GD32F407】i2c主机发送,从机中断接收 前言 现在手里负责的一个项目需要用i2c和主芯片进行通信主动发送,中断接收,这就需要支持i2c主机模式和从机模式,先查看原理图 这里我们用到了两条i2c总线进行数据的交替传输,避免在使用一条总线是发送数据和接收数据冲突 初始化i2c控制器 s32_k i2cDevInit(u8 byBusId, TI2cBus *pTI2cBus) { //PCLK = 36000000 BOOL retFlg = FALSE; int I2xSCL = pTI2cBus->byFastMode ? 阅读详情

相关推荐

彻底解决Win11 Android模拟器驱动权限问题:手动修改silent_install.bat的保姆级教程

本文提供了一份详细的Win11 Android模拟器驱动权限问题解决方案,重点介绍了手动修改silent_install.bat脚本的两种方法。通过分析问题根源并给出具体代码修改方案,帮助开发者彻底解决Android Studio在Windows 11上安装时遇到的UAC循环弹窗问题,确保android-emulator-hypervisor-driver顺利安装。

dengliugong3918的博客 461

S5PV210移植ubuntu根文件系统随笔记录

S5PV210移植ubuntu根文件系统遇到的问题。 提示打印下列错误log。 [ 1.585459] Freeing unused kernel memory: 144K (803de000 - 80402000) [ 1.970278] systemd[1]: Failed to mount tmpfs at /sys/fs/cgroup: No such file or dire...

xuesong10210的博客 2302

STM32解析航模遥控器的PPM信号

使用STM32对航模遥控器的PPM信号进行解析

qq_44343584的博客 9734

Linux的引导过程,服务控制和扇区故障修复

文章目录一、Linux引导过程二、系统初始化进程1、init进程2、systemd三、systemd关键字四、运行级别对应的systemd目标五、修复MBR扇区故障六、 修复GRUB引导故障七、遗忘root用户密码 一、Linux引导过程 二、系统初始化进程 1、init进程 由Linux内核加载运行/sbin/init程序 init进程是系统中第一个进程 init进程的PID(进程标记)号永远是1 2、systemd systemd是Linux操作系统的一种init软件 CentOS 7 中采

liuqingyun优快云的博客 597

Arduino Uno 实验15——MQ-135 气体传感器模块

MQ-135 气体传感器模块简介(空气质量检测 有害气体检测)   MQ135气体传感器所使用的气敏材料是在清洁空气中电导率较低的二氧化锡(SnO2)。当传感器所处环境中存在污染气体时,传感器的电导率随空气中污染气体浓度的增加而增大。MQ135气体传感器对氨气、硫化物、苯系蒸汽的灵敏度高,对烟雾和其它有害气体的监测也很理想。这种传感器可检测多种有害气体,是一款适合多种应用的低成本传感器。   主要用途:家庭和环境的有害气体检测装置   主要芯片:LM393、MQ-135气体传感器 不同气体的型号选择

weixin_42645653的博客 2万+

W5500 MACRAW模式实战:在ESP32上抓取并解析原始以太网数据包

本文详细介绍了如何在ESP32开发板上使用W5500芯片的MACRAW模式捕获和解析原始以太网数据包。通过硬件连接指南、代码实现示例和协议解析技巧,帮助开发者深入理解网络通信底层机制,实现网络嗅探和自定义协议开发等高级应用。

weixin_42520573的博客 418

Manjaro 安装 VMware 遇到的问题

Manjaro 安装 VMware 遇到的问题 Vmware vmmon module error 新系统安装成功后无法启动,报错 Could not open /dev/vmmon: No such file or directory. Please make sure that the kernel module 'vmmon' is loaded。原因是安装时缺少 4.15+ 的内核版本,应在安装前勾选 Linux-header 项并选择 4.15 版本,也可以在启动时附加 noretpoline 标

July树树 1757

保姆级教程:用HFSS 2023 R2搞定GPS右旋圆极化微带天线(从建模到优化全流程)

本文提供了一份详细的HFSS 2023 R2教程,指导读者从零开始设计GPS右旋圆极化微带天线。涵盖建模、仿真和优化全流程,特别关注圆极化特性的实现与优化,帮助工程师快速掌握天线设计的关键技术。

weixin_42557830的博客 174

linux 卸载多备份,双系统下ubuntu16.04备份和还原、彻底删除和重装(包含迁移) 亲跳多坑!!...

1. 前言:前几天闲着无事,占着自己有了备份试了一下“rm -rf /*”,还原系统过程很坎坷,作为一名linux小白跳了很多坑,摸爬滚打出来做一份记录。1.在对系统进行改动之前一定要清楚自己系统的配置,不要随意尝试不懂的指令,不是指“rm -rf”(当然也算),修复过程中可能会引入更多bug。2.确定使用的引导,参考win10+ubuntu双系统:UEFI+GPT和Legacy+MBR引导模式,...

weixin_30271235的博客 464

PCB印刷电路缺陷检测实战:从数据集准备到模型训练全流程解析

本文详细解析了PCB缺陷检测从数据集准备到模型训练的全流程。重点介绍了PKU-Market-PCB数据集的特点与下载方法,并提供了数据格式转换、模型选择(如YOLOv8)与训练配置的实战代码。针对PCB小目标检测的难点,文章给出了数据分析和模型优化的具体策略,帮助读者构建高效的缺陷检测系统。

weixin_29065791的博客 548

TC3XX - MCAL知识点(三十五):Tasking编译器下,Tc3xx的MCAL代码如何使用多核,多核中断、多核任务、多核外设之间的MCAL配置与代码例程

文章用于记录在裸机情况下使用多核Tc387芯片,如何高效运行以及正确的代码、工程属性、链接文件配置等问题,相互结合、相互影响的地方,以示后续使用记录。

梦想技术家 964

linux 卸载多备份,双系统下ubuntu16.04备份和还原、完全删除和重装(包含迁移) 亲跳多坑!!...

1. 前言:前几天闲着无事,占着本身有了备份试了一下“rm -rf /*”,还原系统过程很坎坷,做为一名linux小白跳了不少坑,摸爬滚打出来作一份记录。1.在对系统进行改动以前必定要清楚本身系统的配置,不要随意尝试不懂的指令,不是指“rm -rf”(固然也算),修复过程当中可能会引入更多bug。2.肯定使用的引导,参考win10+ubuntu双系统:UEFI+GPT和Legacy+MBR引导模式...

weixin_42117116的博客 402

SimSwap复现指引及代码分析【2023有更新】

我的环境!!!😚😚😚 之后会遇到:还会遇到至此环境配置完毕!下面是所需要的checkpoint。至此环境准备结束。先试试环境是否有问题,图片是代码包中给的。我用的是512的checkpoint,无水印,a是源脸,b是目标脸。输出到./output/result_whole_swapsingle.jpg 如图是可以成功换脸的:(为了方便查看将图像裁剪到了128x128) 表示图像预处理,相应的改为也是一样。不加就是对已经面部对齐的图像进行简单的面部交换。 加上就是无水印。 交换一张图片中的所有面孔。

zik的博客 2050

JVM中jmap无法连接java进程的问题

引言: 在JVM的实际应用中,一般无法通过图形化的界面来进行JVM的观察和问题确定,一般都需要通过命令来进行,这里碰到的问题是无法连接上java进程....

木小鱼的笔记 3万+

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

docker运行java程序 使用jmap,jstack命令 tini运行的程序获取进程

使用docker进行部署java程序,过程中会遇到一些问题,首先对docker要有一个基本的了解 初学可以把docker当成一个linux中的虚拟机 我们这里采用的是alpine系统 想要对docker中的java程序使用java的一些命令,首先java程序要使用tini托管的方式进行运行,默认java程序会使用1进程,1号负责执行内核的部分初始化工作及进 行系统配置,并创建若干个用于高速缓存和虚拟主存管理的内核线程,java的一些命令(jmap,jstack...)是无法使用到1进程的 tini使

dengjiaqun的专栏 3302

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

jmap查询java进程堆空间大小

三月泡生长在阳春三月天,把鲜红的美味奉献给世人 1373

大剑无锋之如何查看一个java进程的堆内存使用情况(jps,jstack,jmap)【面试推荐】

jps jps主要用来输出JVM中运行的进程状态信息。 命令行参数选项说明如下: 1 -q不输出类名、Jar名和传入main方法的参数 2 -m输出传入main方法的参数 3 -l输出main类或Jar的全限名 4 -v输出传入JVM的参数 Jstack 使用 通过使用 jps 命令获取需要监控的进程的pid,然后使...

乔治大哥的博客 872

使用jmap做java进程dump

命令:jmap -dump:format=b,file=heap.bin file:保存路径及文件名 pid:进程编号(windows通过任务管理器查看,linux通过ps aux查看) dump文件可以通过MemoryAnalyzer分析查看,网址:http://www.eclipse.org/mat/,可以查看dump时对象数量,内存占用,线程情况等。

hualusiyu的专栏 1011

jmap java_使用JDK工具jmap和jhat监控Java进程

Suppose you have a running Java process and you would like to inspect its running status, for example how many object instance are created or memory consumption status, you can use some standard tool ...

weixin_36447179的博客 142

jmap查看java进程占用的数据库连接数

背景:开发中时长会出现无法连接数据库的错误,怀疑应该是不是打开的连接数过多而导致。本例中通过jmap打印虚拟机堆栈信息中的连接数来确定进程所占用的数据库(oracle)连接数。 1.查看当前数据库的连接数 select count(*) from v$session; 2.启动30个线程同时查询数据库(连接池中最大允许50个连接),但所有线程再并未关闭连接 [code="java"]f...

lionzm的博客 3688

linux java 进程内存使用情况_jmap使用以及 linux下查看进程的内存使用情况

jmap使用以及 linux下查看进程的内存使用情况1、top命令top -d 1 -p pid [,pid ...] //设置为delay 1s,默认是delay 3s如果想根据内存使用量进行排序,可以shift + m(Sort by memory usage)打印出某个java进程(使用pid)内存内的,所有‘对象’的情况(如:产生那些对象,及其数量)。可以输出所有内存中对象的工具,甚至可...

weixin_39649660的博客 589

java dump命令例子,如何利用JDK自带jmap和jhat监控运行状态的Java进程

本篇文章给大家带来的内容是关于如何利用JDK自带jmap和jhat监控运行状态的Java进程,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。对于处于运行状态中的Java进程,JDK自带了很多工具,允许Java开发人员监控运行进程中的各种状态,比如该进程内部创建了多少个对象实例,消耗了多少内存,等等。本文基于JDK1.8而写成。我下面写了一个最简单的Java类,包含了一个无限循环,每...

weixin_31031155的博客 253

获取java进程的堆内存镜像_jmap查询JVM堆内存

jmap命令可以获取运行中的jvm的快照,从而离线分析,检查内存泄漏,检查一些严重影响性能的大对象的创建,检查系统中最多的对象,各种对象所占用的内存大小.可以使用jmap生成Heap Dump.什么是堆Dump堆Dump是反应Java堆使用情况的内存镜像,其中主要包含系统信息,虚拟机属性,完整的线程Dump,所有类和对象的状态等。一般,在内存不足,GC异常等情况下,我们就会怀疑内存泄漏,这个时候就...

weixin_40000430的博客 1018

jvm复习: 使用jmap查看java进程的类加载器信息\查看堆的信息

jvm

amadeus_liu2的博客 331

java jmap_Java进程内存分析工具之jmap

jmap是java 7后自带的轻量级内存分析工具,原文介绍可以见官网,《The jmap Utility》1 堆栈分析获取GC算法,新生代,老年代,永久代空间占用分析jmap -heap 29620Attaching to process ID 29620, please wait...Debugger attached successfully.Client compiler detected....

weixin_35625739的博客 773

linux下java进程排查CPU占用过高、堆栈的常用命令(jstack 、jmap、jstat)

1、jstack (转载:https://blog.51cto.com/10672221/1983809) linux下查找java进程占用CPU过高原因 1. 查找进程 top查看进程占用资源情况 明显看出java的两个进程22714,12406占用过高cpu. 2.查找线程 使用top -H -p <pid>查看线程占用情况 3.查找java的堆栈信息 将线程id转换成十六进制 #printf "%x\n" 15664 #3d30 ps:16进制转10进制...

weixin_41506737的博客 1823
上一篇: squid,nginx,lighttpd反向代理的区别
下一篇: Java HashMap 分析之四:查找和内存使用
zljjava
博客等级 码龄15年 155粉丝 15原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值