jmap(Memory Map For Java)

功能

jmap(Memory Map For Java)命令用于生成堆转储快照(一般称为heaphump或dump文件)。如果不使用jmap命令,要想获取Java堆转储快照还有一些比较“暴力”的手段:使用-XX:HeapDumpOnOutOfMemoryError参数,可以让虚拟机在OOM异常出现之后自动生成dump文件;通过-XX:HeapDumpOnCtrlBreak参数则可以使用[Ctrl]+[Break]键让虚拟机生成dump文件,又或者在Linux系统下通过Kill -3命令发送进程退出信号“恐吓”一下虚拟机,也能拿到dump文件。

jmap的作用并不仅仅是为了获取dump文件,它还可以查询finalize执行队列,Java堆和永久代的详细信息,如空间使用率、当前用的是哪种收集器等。

命令

jmap [option] vmid

说明

-dump:生成Java堆转储快照。格式为:-dump:[live,]format=b,file=<filename>,其中live子参数说明是否只dump出存活的对象。

-finalizerinfo:显示在F-Queue中等待Finalizer线程执行finalize方法的对象。只在Linux/Solaris平台下有效。

-heap:显示Java堆详细信息,如使用哪种回收器、参数配置、分代状况等。只在Linux/Solaris平台下有效。

-histo:显示堆中对象统计信息,包括类、实例数量和合计容量。

-permstat:以ClassLoader为统计口径显示永久代内存状态。只在Linux/Solaris平台下有效。

-F:当虚拟机进程对-dump选项没有响应时,可使用这个选项强制生成dump快照。只在Linux/Solaris平台下有效。

示例

jmap -dump:format=b,file=eclipse.bin 3500

时间: 2024-10-05 05:04:52

jmap(Memory Map For Java)的相关文章

There is insufficient memory for the Java Runtime Environment to continue问题解决

在linux系统下长时间进行性能测试,连续几次发生服务器假死无法连接上的情况,无奈只能重启服务器.在测试路径下发现hs_err_pid17285.log文件,打开文件查看其主要内容如下: # There is insufficient memory for the Java Runtime Environment to continue.# Cannot create GC thread. Out of system resources.# Possible reasons:#   The sy

out of memory kill process (java) score or a child

最近在跑大数据,发现 out of memory kill process (java) score or a child,查资料发现是操作系统linux low mem 太低,后来加大内存一样不管用,开始分析代码: 将代码中的String 字符串拼接改成StringBuilder(单线程速度比StringBuffer快) 将获取文件名称的方法file.listFiles() 改成 file.list() 将代码中的不必要的创建对象.数组开销去掉,尤其是在循环里 发现仍然有问题,通过free -

Bean-Query 一个把对象转换为Map的Java工具库

刚开源了一个经过完整测试的Java工具类.目前的代码已经经历了完整的测试,正在申请放到Maven central Repository上. 地址如下: https://github.com/Jimmy-Shi/bean-query 使用说明如下: Bean-query Click Here for English version. BeanQuery 是一个把对象转换为Map的Java工具库.支持选择Bean中的一些属性,对结果进行排序和按照条件查询.不仅仅可以作用于顶层对象,也可以作用于子对象

底板芯片组与内存映射(Motherboard Chipsets and the Memory Map) 【转】

转自:http://blog.chinaunix.net/uid-25909619-id-4194650.html 底板芯片组与内存映射 我打算写一些关于计算机内部构造(computer internal)的博文(post),以解释现代操作系统内核是如何工作的.希望对一些在这方面没有经验,又感兴趣的程序员和爱好者(enthusiasts and programmers)提供些帮助.这些博文主要关注于Linux,Windows,以及Intel处理器.计算机的内部构造是我的兴趣之一.我曾经写过一些类

Map实现java缓存机制的简单实例

缓存是Java中主要的内容,主要目的是缓解项目访问数据库的压力以及提升访问数据的效率,以下是通过Map实现java缓存的功能,并没有用cache相关框架. 一.缓存管理类 CacheMgr.java package com.henu.util; import java.util.Date; import java.util.HashMap; import java.util.HashSet; import java.util.Iterator; import java.util.Map; imp

S3C6410 Memory Map &amp; ARM 指令集 笔记

Memory Map &  指令集 上面这幅图表明了 Main memory  物理地址空间和各个控制器之间的关系, 例如,0x 0000 0000 ~ 0x07FF FFFF之间的地址空间属于Int.ROM控制器 SROM控制器 和One NAND控制器寻址的空间,其余的以此类推.具体的细节和内存子系统有关系. 图中标注有2的方框表示这个地址空间既能SROM控制器或OneNAND 控制器,至于具体给谁,这取决于系统控制器 6410 支持 32-bit 的物理地址空间,这部分地址空间可以被划分为

Could not resolve type alias &#39;map &#39;. Cause: java.lang.ClassNotFoundException: Cannot find class: map

把resultType改为resultMap, 把parameterType改为parameterMap,重新发布并运行. Could not resolve type alias 'map '. Cause: java.lang.ClassNotFoundException: Cannot find class: map

存储占用:Memory Map 汉化去广告版

转载说明 本篇文章可能已经更新,最新文章请转:http://www.sollyu.com/storage-occupancy-memory-map-localization-to-billboards/ 说明 官方说明 存储占用并不是另一款缓存清理工具.它专注于让你获得有关你的存储设备里所有文件占用情况并让你删除你自己的文件(图片.视频.音乐)还有缓存文件.若要进行上述操作,存储占用会为你展示一张可互动的概览图展示所有文件和文件夹.屏幕占得越多,文件越大,就这么简单! 酷安点评 存储占用可以用来

Motherboard Chipsets and the Memory Map.主板芯片组与内存映射

原文标题:Motherboard Chipsets and the Memory Map 原文地址:http://duartes.org/gustavo/blog/ [注:本人水平有限,只好挑一些国外高手的精彩文章翻译一下.一来自己复习,二来与大家分享.] 我打算写一组讲述计算机内幕的文章,旨在揭示现代操作系统内核的工作原理.我希望这些文章能对电脑爱好者和程序员有所帮助,特别是对这类话题感兴趣但没有相关知识的人们.讨论的焦点是Linux,Windows,和Intel处理器.钻研系统内幕是我的一个