jmap简单实用示例
jmap这些工具是jdk自带的调试工具,安装完之后位于bin目录下,例如:/usr/java/jdk1.7.0_67/bin/
jmap用来查看堆内存使用状况,一般结合jhat使用。
1.jmap语法格式如下:
jmap [option] pid
jmap [option] executable core
jmap [option] [server-id@]remote-hostname-or-ip
如果运行在64位JVM上,可能需要指定-J-d64命令选项参数。
jmap -permstat pid
打印进程的类加载器和类加载器加载的持久代对象信息,输出:类加载器名称、对象是否存活(不可靠)、对象地址、父类加载器、已加载的类大小等信息
[root@bogon usr]# jmap -permstat 10424
Attaching to process ID 10424, please wait...
Debugger attached successfully.
Server compiler detected.
JVM version is 24.60-b09
finding class loader instances ..done.
computing per loader stat ..done.
please wait.. computing liveness........................done.
class_loader classes bytes parent_loader alive? type
<bootstrap> 1493 6084856 null live <internal>
0xa18d1590 1229 6218584 0xa18d15e0 live sun/misc/Launcher$AppClassLoader@0x70f65b98
0xa1a77c00 0 0 0xa18d1590 live com/alibaba/fastjson/util/ASMClassLoader@0x712b4aa8
0xa18d15e0 0 0 null live sun/misc/Launcher$ExtClassLoader@0x70f27d38
0xa1aed110 0 0 0xa18d1590 live java/util/ResourceBundle$RBClassLoader@0x7120e368
2.导出到文件:
jmap -dump:format=b,file=/usr/test33.bin 10424
3.直接显示
jmap -histo 10424
num #instances #bytes class name
----------------------------------------------
1: 34301 8999856 [B
2: 30979 3689456 <constMethodKlass>
3: 39666 3590512 [C
4: 915 3165600 [I
5: 30979 2731984 <methodKlass>
6: 2441 1457456 <constantPoolKlass>
7: 2441 995568 <instanceKlassKlass>
8: 2146 852496 <constantPoolCacheKlass>
9: 26281 630744 java.lang.String
10: 2660 323400 java.lang.Class
11: 4025 244360 [S
12: 4870 233760 java.nio.HeapByteBuffer
13: 4721 226608 java.nio.HeapCharBuffer
14: 3150 223296 [Ljava.lang.Object;
15: 8468 203232 java.util.HashMap$Entry
16: 3961 202624 [[I
17: 4322 165752 [[B
这里:
[C
is achar[]
[S
is ashort[]
[I
is aint[]
[B
is abyte[]
[[I
is aint[][]
constMethodKlass/ methodKlass/ constantPoolKlass/ constantPoolCacheKlass/ instanceKlassKlass/ methodDataKlass
与Classloader相关,常驻Perm区。
jmap简单实用示例相关推荐
- python fileinput模块next_Python中的fileinput模块的简单实用示例
这几天有这样一个需求,要将用户登陆系统的信息统计出来,做成一个报表.当用户登陆成功的时候,服务器会往日志文件里写一条像下面这种格式的记录:"日期时间@用户名@IP",这样的日志文件 ...
- ajax 示例代码,Ajax的简单实用实例代码
我将实现一个简单的Ajax页面无刷新进行用户验证案例: 效果如下图: 实现主要过程: 在UsersAction类中的checkUser方法中接收并验证前台的表单数据,针对不同情况,返回一个状态码cod ...
- Java注解的基本概念和原理及其简单实用
一.注解的基本概念和原理及其简单实用 注解(Annotation)提供了一种安全的类似注释的机制,为我们在代码中添加信息提供了一种形式化得方法,使我们可以在稍后某个时刻方便的使用这些数据(通过解析 ...
- 经验分享:10个简单实用的 jQuery 代码片段
尽管各种 JavaScirpt 框架和库层出不穷,jQuery 仍然是 Web 前端开发中最常用的工具库.今天,向大家分享我觉得在网站开发中10个简单实用的 jQuery 代码片段. 您可能感兴趣的相 ...
- 16个简单实用的.htaccess技巧
16个简单实用的.htaccess技巧 .htaccess 文件 (Hypertext Access file) 是Apache Web服务器的一个非常强大的配置文件,对于这个文件,Apache有 ...
- Android简单实用的交互动画库
简单实用的Android交互动画库SpringingLayout 一直以来我都对Android界面效果和交互动画特别的着迷,而且每次做工程都需要重写一大堆的组件,动画,感觉颇为繁杂,于是趁着有空闲做了 ...
- 利用itchat搭建微信机器人详解(附三个实用示例)
本文简介 好久没更新文章啦,因为最近在赶一本Py的入门书,碰巧今天把这篇文章赶出来了. 而很多加群的小朋友很多都是咨询如何搭建微信机器人的,所以就把这一章放出来了, 取需,三个实用示例:定时发信息,集 ...
- 创建角色和ansible-galaxy简单实用
创建角色和ansible-galaxy简单实用 1.创建角色 1.1 创建步骤 在Ansible中创建角色不需要特别的开发工具.创建和使用角色包含三个步骤: 创建角色目录结构 定义角色内容 在play ...
- php调色板快捷键,Linux_制作简单实用的调色板工具,把如下代码加入body区域 - phpStudy...
制作简单实用的调色板工具 把如下代码加入 区域中: 红 绿 蓝 灰 function hexit(which) hexit=hex(which) end function for(i=0;i<= ...
最新文章
- 使用YOLOv5模型进行目标检测!
- spring的jar各包作用
- [转]ASP.NET效率陷阱——Attributes
- 给Ubuntu添加清华的软件源
- 喜报 | 链家签约神策数据,让数据“说话”更精准
- Linux CentOS 7下 Apache Tomcat 7 安装与配置
- 数据库增删改查性能对比
- spring4.0之二:@Configuration的使用
- Angular之组件的创建
- 程序员如何自我超越,教你一招
- ASP.NET页面传值的各种方法和分析
- model.train()和model.eval()
- 矩阵维度必须一致是什么意思_糖化肌肤是什么意思?抗糖养肤你必须知道这些...
- C#程序打包安装部署之创建快捷方式
- centos npm install 超时报错
- 全国计算机信息安全技术
- 计算机械零件体积,第三章机械零件的工作能力和计算准则.docx
- 粒子群在小车机械手臂的应用
- 数字中国城市巡礼之杭州,让城市长出“神经系统”
- 电脑太卡之NT kernel System
热门文章
- Nginx代理介绍、安装及配置详解
- 广告拦截之easylist和easylistchina订阅地址
- JAVA :RESTLET开发实例(一)基于JAX-RS的REST服务
- icmp时间戳请求和应答程序实现_ICMP报文详解之ping实现
- postgresql 创建用户_PostgreSQL创建用户和修改用户密码
- java标识符和关键字相关概念
- mysql doen s exist_Mysql中大小写敏感问题导致的MySql Error 1146 Tabel doen’t exist错误
- linux变量存储命令,如何将命令存储在shell脚本中的变量中?
- cad vba 打开文件对话框_CAD每次打开系统都会新建一个Acad.vlx文件,如何解决呢?...
- python socket 游戏_python socket模拟游戏开服