java jmap_Java常用分析工具之jmap
简介
jmap是JDK中提供的一个用来监视进程运行中的jvm物理内存的占用情况的工具。该进程内存内,所有对象的情况,例如产生了哪些对象,对象数量。当系统崩溃时,jmap 可以从core文件或进程中获得内存的具体匹配情况,包括Heap size, Perm size等。
使用jmap会影响线上运行的应用,所以尽量不要在线上执行此命令。如果想dump堆信息,可以使用gcore命令,比jmap -dump快。
使用
jmap的使用很简单,可以通过以下命令查看。
jmap -h
Usage:
jmap [option]
(to connect to running process)
jmap [option]
(to connect to a core file)
jmap [option] [server_id@]
(to connect to remote debug server)
.......
案例
查看堆heap占用情况
jmap -heap 90099
Attaching to process ID 90099, please wait...
Debugger attached successfully.
Server compiler detected.
JVM version is 24.71-b01
using thread-local object allocation.
Parallel GC with 4 thread(s) #垃圾回收的方式
Heap Configuration: #堆配置信息
MinHeapFreeRatio = 0
MaxHeapFreeRatio = 100
MaxHeapSize = 2147483648 (2048.0MB)
NewSize = 1310720 (1.25MB)
MaxNewSize = 17592186044415 MB
OldSize = 5439488 (5.1875MB)
NewRatio = 2
SurvivorRatio = 8
PermSize = 21757952 (20.75MB)
MaxPermSize = 85983232 (82.0MB)
G1HeapRegionSize = 0 (0.0MB)
Heap Usage:
PS Young Generation
Eden Space:
capacity = 34603008 (33.0MB)
used = 9773032 (9.320289611816406MB)
free = 24829976 (23.679710388183594MB)
28.24330185398911% used
From Space:
capacity = 5242880 (5.0MB)
used = 0 (0.0MB)
free = 5242880 (5.0MB)
0.0% used
To Space:
capacity = 5242880 (5.0MB)
used = 0 (0.0MB)
free = 5242880 (5.0MB)
0.0% used
PS Old Generation
capacity = 89128960 (85.0MB)
used = 0 (0.0MB)
free = 89128960 (85.0MB)
0.0% used
PS Perm Generation
capacity = 22020096 (21.0MB)
used = 2666808 (2.5432662963867188MB)
free = 19353288 (18.45673370361328MB)
12.110791887555804% used
677 interned Strings occupying 44048 bytes.
查看对象占用内存情况
$ jmap -histo:live 96176
num #instances #bytes class name
----------------------------------------------
1: 5948 766656
2: 5948 679168
3: 401 474448
4: 365 289664
5: 401 276112
6: 562 93176 [B
7: 900 86256 [C
8: 463 45328 java.lang.Class
9: 653 43216 [[I
10: 608 37144 [S
11: 45 24480
输出内容的一些说明:
[C is a char[]
[S is a short[]
[I is a int[]
[B is a byte[]
[[I is a int[][]
上面的输出中[C对象占用Heap这么多,往往跟String有关,String其内部使用final char[]数组来保存数据的。
constMethodKlass/ methodKlass/ constantPoolKlass/ constantPoolCacheKlass/ instanceKlassKlass/ methodDataKlass
与Classloader相关,常驻与Perm区。
导出堆信息
可以使用jmap把堆信息导出,并使用可视化工具mat分析。导出的命令如下:
$ jmap -dump:format=b,file=a.dmp 96185
Dumping heap to /Users/canglong/dev/test/a.dmp ...
Heap dump file created
技术交流
java jmap_Java常用分析工具之jmap相关推荐
- java内存溢出分析工具:jmap使用实战
java内存溢出分析工具:jmap使用实战 在一次解决系统tomcat老是内存撑到头,然后崩溃的问题时,使用到了jmap. 1 使用命令 在环境是linux+jdk1.5以上,这个工具是自带的,路 ...
- 软文推荐:常用 Java 静态代码分析工具的分析与比较
http://www.uml.org.cn/j2ee/201107114.asp 常用 Java 静态代码分析工具的分析与比较 作者:赵卓 , 发布于2011-07-11 , IBM 简介: 本文首先 ...
- java虚拟机常用命令工具
java虚拟机常用命令工具 博客分类: 虚拟机 虚拟机jvmjava 一.概述 程序运行中经常会遇到各种问题,定位问题时通常需要综合各种信息,如系统日志.堆dump文件.线程d ...
- OOM分析(1) Android 源,如何分析android的OOM,与java静态代码分析工具
用MAT分析OOM 很多OOM看似发生在bitmap 分配得时候,但它一般不是rootcause.根本原因都在于本应该自动释放的资源,因为代码的错误,而导致某些对象一直被引用(Reference),例 ...
- 如何分析android的OOM,与java静态代码分析工具
2019独角兽企业重金招聘Python工程师标准>>> 用MAT分析OOM 很多OOM看似发生在bitmap 分配得时候,但它一般不是rootcause.根本原因都在于本应该自动释放 ...
- java jmap_Java进程内存分析工具之jmap
jmap是java 7后自带的轻量级内存分析工具,原文介绍可以见官网,<The jmap Utility> 1 堆栈分析 获取GC算法,新生代,老年代,永久代空间占用分析 jmap -he ...
- Java虚拟机------JVM分析工具
主要介绍JVM的分析工具: jps 1234567891011121314151617 jps:Java Virtual Machine Process Status Tool http://docs ...
- 性能优化之内存泄露(Memory Leak)常用分析工具(另3种)
1 LeakCanary(最常用,能监控整个App内存泄漏情况) 1.1 使用LeakCanary // 仅在debug包启用LeakCanary debugImplementation 'com.s ...
- java分析内存泄露工具_Eclipse Memory Analyzer(Java内存泄漏分析工具)
概述 一个大型的Java项目也许从开发到测试结束并未发现一些大的问题,但是在生产环境中还是会出现一些非常棘手的问题,如内存泄漏,遇到这样的问题对于一个经验尚浅的开发人员来说难度非常大,好的一点是JVM ...
最新文章
- html 实现动态在线预览word、excel、pdf等文件
- python中的apply(),applymap(),map() 的用法和区别
- Struts2的标签库(一)之控制标签
- opacity 设置不透明度、visibility 设置是否可见、transition 设置过渡动画
- linux等待队列wait_queue_head_t和wait_queue_t
- linux 使用秘钥认证,linux 密钥验证登录
- asterisk sip服务器搭建与配置
- 百度竞价广告的URL设置
- html自动幻灯片代码,简单常用的幻灯片播放实现代码
- 详解电源反接使用MOS管保护电路原理及其优势
- Linux搭建小型服务器——文件共享以及邮件服务器
- 如何用 Telemetry 测试移动 APP H5性能?
- Elastic 7.10 发布了可搜索快照的公测版和 Kibana Lens 的正式版
- 画意围棋助手(导入按键精灵中使用)已发布,可下载
- 等级保护测评经验分享干货
- 2021-11-15 基于音乐商店NetMusicShop的复杂查询(二)
- 广东首例!涉“人脸识别”公民个人信息保护民事公益诉讼案宣判
- AE基础教程第一阶段——09快速预览
- VMware 15Pro安装Mac OS系统教程 附资源下载
- 3.设计模式--适配器模式(adapter模式)
热门文章
- 华为全屋智能空间 3.0 评测
- 脱壳工具:frida-dexdump的使用详解
- 共享的计算机用户账户限制,win7不能访问共享文件夹用户账户限制如何解决
- Winform右键菜单contextMenuStrip控件的使用
- Linux系统 05 python环境配置02 之 virtualenv与virtualenvwrappe以及freeze
- 优秀的技术管理者需要具备哪些能力?
- think PHP M(),thinkPHP的用法之M
- 网络安全毕业设计题目大全
- 科大讯飞/百度/阿里/腾讯(BAT)智能语音识别(ASR)性能对比选择预计价格分享
- python爬取某网站上的图片