jmap命令(Java Memory Map)

2023-11-08

 

JDK内置工具使用

一、javah命令(C Header and Stub File Generator)

二、jps命令(Java Virtual Machine Process Status Tool)

三、jstack命令(Java Stack Trace)

四、jstat命令(Java Virtual Machine Statistics Monitoring Tool)

五、jmap命令(Java Memory Map)

六、jinfo命令(Java Configuration Info)

七、jconsole命令(Java Monitoring and Management Console)

八、jvisualvm命令(Java Virtual Machine Monitoring, Troubleshooting, and Profiling Tool)

九、jhat命令(Java Heap Analyse Tool)

十、Jdb命令(The Java Debugger)

十一、Jstatd命令(Java Statistics Monitoring Daemon)


1、介绍

打印出某个java进程(使用pid)内存内的,所有对象的情况(如:产生那些对象,及其数量)。

 

可以输出所有内存中对象的工具,甚至可以将VM 中的heap,以二进制输出成文本。使用方法 jmap -histo pid。如果连用SHELL jmap -histo pid>a.log可以将其保存到文本中去,在一段时间后,使用文本对比工具,可以对比出GC回收了哪些对象。jmap -dump:format=b,file=outfile 3024可以将3024进程的内存heap输出出来到outfile文件里,再配合MAT(内存分析工具(Memory Analysis Tool),使用参见:http://blog.csdn.net/fenglibing/archive/2011/04/02/6298326.aspx)或与jhat (Java Heap Analysis Tool)一起使用,能够以图像的形式直观的展示当前内存是否有问题。

64位机上使用需要使用如下方式:

jmap -J-d64 -heap pid

2、命令格式

SYNOPSIS

       jmap [ option ] pid

       jmap [ option ] executable core

       jmap [ option ] [server-id@]remote-hostname-or-IP

3、参数说明

1)options 

executable Java executable from which the core dump was produced.

(可能是产生core dumpjava可执行程序)

core 将被打印信息的core dump文件

remote-hostname-or-IP 远程debug服务的主机名或ip

server-id 唯一id,假如一台主机上多个远程debug服务 

2)、基本参数:

-dump:[live,]format=b,file=<filename> 使用hprof二进制形式,输出jvmheap内容到文件=. live子选项是可选的,假如指定live选项,那么只输出活的对象到文件

-finalizerinfo 打印正等候回收的对象的信息.

-heap 打印heap的概要信息,GC使用的算法,heap的配置及wise heap的使用情况.

-histo[:live] 打印每个class的实例数目,内存占用,类全名信息. VM的内部类名字开头会加上前缀”*如果live子参数加上后,只统计活的对象数量

-permstat 打印classloadjvm heap长久层的信息包含每个classloader的名字,活泼性,地址,classloader和加载的class数量另外,内部String的数量和占用内存数也会打印出来

-F 强迫.pid没有相应的时候使用-dump或者-histo参数在这个模式下,live子参数无效

-h | -help 打印辅助信息 

-J 传递参数给jmap启动的jvm. 

pid 需要被打印配相信息的java进程id,创业与打工的区别 博文预览,可以用jps查问.

4、使用示例

1)[fenglb@ccbu-156-5 ~]$ jmap -histo 4939

[输出较多这里不贴了]

2)[fenglb@ccbu-156-5 ~]$ jmap -dump:format=b,file=test.bin 4939

Dumping heap to /home/fenglb/test.bin ...

Heap dump file created


本文出自:冯立彬的博客




本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

jmap命令(Java Memory Map) 的相关文章

  • 了解 netty 通道缓冲区和水印

    我正在尝试了解网络缓冲区和水印 作为一个测试用例 我有一个 netty 服务器 它向客户端写入数据 客户端被阻止 基本上每次读取之间有 10 秒的睡眠时间 在正常 I O 下 如果接收方被阻塞 TCP 发送方将受到限制 由于流量控制 发送速
  • 垂直 ViewPager 中的动画

    我需要垂直制作这个动画ViewPager https www youtube com watch v wuE 4jjnp3g https www youtube com watch v wuE 4jjnp3g 这是我到目前为止所尝试的 vi
  • 如何从 Java 访问 Windows 设备管理器中的信息?

    我有一个串行 USB 设备 并且其中多个设备可以连接到计算机 我需要查询和检索设备连接到的 COM 端口列表 在 Windows 设备管理器中 您可以获得当前连接的设备的 COM 端口 友好名称 该列表是动态的 从注册表中读取不工作 htt
  • JAXB 继承冲突 - 重新注释子类

    目前我的项目中有这样的环境 public abstract class Foo private List
  • Apache Thrift Java-Javascript 通信

    我正在编写一个基于 Apache Thrift 的 Java 服务器 它将从 Javascript 客户端接收数据 我已经完成了 Java 服务器 但问题是我可以获得 Javascript 客户端的工作示例 我无法找到一个好的示例 构建文档
  • 使用全局变量从内部函数获取空字符串

    请帮助我解决一些小问题 我确信你能做到 D 我试图在 firestore 文档 user cases information 上设置一个字段 其中包含一个字段 case number 首先我声明这个全局变量 private String c
  • 使用 kryo 注册课程的策略

    我最近发现了 kryonet 库 它非常棒并且非常适合我的需求 然而 我遇到的一个问题是制定一种好的策略来注册所有可以转移的类 我知道我可以在每个对象中编写一个静态方法 该方法将返回它使用的所有类的列表 但我真的不想这样做 为了我自己的时间
  • 如何自动转换十六进制代码以将其用作 Java 中的 byte[]?

    我这里有很多十六进制代码 我想将它们放入 Java 中 而不需要向每个实体附加 0x 喜欢 0102FFAB 和我必须执行以下操作 byte test 0x01 0x02 0xFF 0xAB 我有很多很长的十六进制代码 有什么办法可以自动做
  • 按扩展名过滤搜索文件返回太多结果

    我正在开发一个 C 控制台应用程序 它必须管理 Windows 操作系统上的文件 我需要获取具有特定扩展名的文件名 列表 我找到了很多解决方案 最建议的是以下一种 HANDLE hFind WIN32 FIND DATA data hFin
  • for循环中更新JLabel的问题

    我的程序的想法是从之前在其他 JFrame 中保存的列表中选择一个名称 我想在标签中一个接一个地打印所有名称 它们之间有很小的延迟 然后停在其中一个名称上 问题是lbl setText String 如果有多个则不起作用setText co
  • 避免 @Secured 注释的重复值

    我正在尝试使用以下方法来保护我的服务方法 Secured如下 public interface IUserService Secured ROLE ROLE1 ROLE ROLE2 ResponseEntity saveUser Creat
  • 在Java中如何将字节数组转换为十六进制?

    我有一个字节数组 我希望该数组的每个字节字符串转换为其相应的十六进制值 Java中有没有将字节数组转换为十六进制的函数 byte bytes 1 0 1 2 3 StringBuilder sb new StringBuilder for
  • RxJava android mvp 单元测试 NullPointerException

    我是 mvp 单元测试的新手 我想对演示者进行一个非常基本的测试 它负责登录 我只想断言 view onLoginSuccess 这是演示者代码 public LoginPresenter LoginViewContract loginVi
  • ActiveMQ JNDI 查找问题

    尝试使用 JNDI 运行以下 ActiveMQ http activemq apache org jndi support html http ActiveMQ 20JNDI 并且我的 jboss server node lib 文件夹中有
  • 从字节数组设置 img src

    我需要设置img src我在对象中拥有的字节数组的属性 img
  • Hibernate 标准接受 %% 值

    我正在使用下面的 Hibernate 代码来过滤workFlowName crt add Restrictions like workFlowName workFlow MatchMode ANYWHERE crt is the crite
  • 在java中执行匿名pl/sql块并获取结果集

    我想执行匿名 PL SQL 并需要获取结果集对象 我得到了可以通过在 PL SQL 块内使用游标来完成的代码 但 PL SQL 块本身将以文本形式来自数据库 所以我无法编辑该 PL SQL 块 并且它只会返回两个值 其列名始终相同 它将返回
  • 从 InputStream 中删除换行符

    我喜欢从一个文件中删除所有换行符 对于 n 和 r n java io InputStream 在读取文件时 相应的方法如下所示 param target linkplain File return linkplain InputStrea
  • Unicode(希腊语)字符存储在数据库中,例如“??????”

    数据库中的希腊字符就像问号 我找不到解决办法 我使用 Java Swing 开发了一个应用程序 但是当我在 MySQL 中插入希腊字母时 就像问号一样 我将数据库排序规则更改为 utf8 并将列也更改为 utf8 我的项目编码设置为UTF
  • Android ClassNotFoundException:在路径上找不到类

    10 22 15 29 40 897 E AndroidRuntime 2561 FATAL EXCEPTION main 10 22 15 29 40 897 E AndroidRuntime 2561 java lang Runtime

随机推荐

  • 计算机分盘的时候c盘留多少,win10分区c盘留多大合适

    重装系统的时候一定会经历的一个过程就是磁盘分区 c盘也就是我们常说的系统盘 那么win10分区的时候c盘该留多少内存合适呢 下面就让小编来告诉你 win10分区c盘留多大合适 如果用户不打算将软件装在C盘 推荐C盘分区60到80GB 分区分
  • webpack基础教学,简单易懂(一)(什么是webpack以及webpack的基本使用)

    前端工程化webapck 什么是前端工程化 前端工程化指的是 在企业级的前端项目开发中 把前端开发所需的工具 技术 流程 经验等进行规范化 标准化 前端工程化的解决方案 早期的前端工程化解决方案 grunt https www gruntj
  • 【知识图谱】神经网络综述

    概述 近年来随着计算机硬件的发展 神经网络作为机器学习中不可获取的一部分在预测 分类 图像分割 识别等方向得到了极其广的应用 然而其网络模型多 数学基础涉及广 使得其门槛较高 好在目前有诸如tensorflow pytorch sklear
  • 【从零开始学习JAVA

    目录 前言 BigInterger BigInteger常见的方法 总结 前言 本篇我们将介绍BigInteger这个比较实用一点的API 这个API在我们实际写项目中都是很实用的API 因此大家应该对这个API有更加熟练的掌握 BigIn
  • Qt 播放视频文件报错:DirectShowPlayerService::doRender: Unresolved error code0x80040266 ()

    原因 缺少LAVFilters组件 解决方法 注意视频文件名不要有中文 下载该组件 http files 1f0 de lavf LAVFilters 0 65 exe 以管理员身份运行安装该组件 重新运行Qt打开视频的程序 发现正常了 不
  • Redis持久化、发布订阅、集群详解

    理论 前面我们说过 Redis相对于Memcache等其他的缓存产品 有一个比较明显的优势就是Redis不仅仅支持简单的key value类型的数据 同时还提供list set zset hash等数据结构的存储 这几种丰富的数据类型我们接
  • CSDN星城大巡礼,长沙“科技之星”年度企业评选正式开启

    2020年 长沙市委主要领导发出 软件产业再出发 的号召 颁布了软件三年行动计划 今年5月 CSDN 作为专业的 IT 社区 与长沙高新区签约 将全国总部落户长沙 这一战略决策 让CSDN与长沙的联结进一步加深 CSDN创始人蒋涛表示 要把
  • angular 基础入门总结

    工程文件创建和依赖下载 依赖npm工具 npm用来对node js的模块进行管理 主要2个用途 下载别人编写的第三方包到本地使用 上传自己的包供别人使用 package json 执行npm init 可以根据提示生成包描述文件 就是自己包
  • 054-机械臂编程

  • JavaScript 数组(数组的增删和数组排序)

    一 数组方法 1 数组操作 push 向数组末尾添加元素 返回新数组长度 添加单个元素 let arr JS Java C let newArrLength arr push PHP console log arr JS Java C PH
  • 基于量子粒子群算法(QPSO)优化LSTM的风电、负荷等时间序列预测算法(Matlab代码实现)

    欢迎来到本博客 博主优势 博客内容尽量做到思维缜密 逻辑清晰 为了方便读者 座右铭 行百里者 半于九十 本文目录如下 目录 1 概述 2 运行结果 3 参考文献 4 Matlab代码实现 1 概述 本文基于QPSO LSTM算法进行负荷 光
  • 功能测试和非功能测试有什么区别?

    转载 https dzone com articles whats the difference between functional and nonfun fromrel true 功能测试验证功能是否按照要求工作 而非功能测试则对更广泛
  • 通信加密与解密

    一 通信加密和解密技术概述 1 1 Bob和Alice的爱情故事 早些年间 恋人们之间的交往以书信沟通较为频繁 在那个年代 这种恋爱的人叫笔友 假设Bob和Alice正是处于这一时代 Bob和Alice恋爱了 他们两个好不容易走到一起 可是
  • 顺序表的简单操作代码(c++实现)

    include
  • HDU 4731 Minimum Palindrome

    hdu 4731 Minimum palindrome 题意 前n个字母形成一个m长的字符串 要求如下 1 最长回文串最小 2 字典序最小 思路 1 n 1 aaaa 2 n 2 打表找规律 1 a 2 ab 3 aab 4 aabb 5
  • 深度优先与宽度优先搜索(python)

    算法原理 1 宽度优先搜索 宽度优先搜索算法 Breadth First Search BSF 思想是 从图中某顶点v出发 首先访问顶点v 在访问了v之后依次从左往右访问v的各个未曾访问过的邻接点 然后分别从这些邻接点出发依次从左往右访问它
  • 引用文档-软件测试分类及测试中三个主要概念

    软件测试分类及测试中三个主要概念 原文链接 https blog csdn net qq 35867537 article details 77477775 1 软件测试分类 按测试技术分 按测试技术 软件测试可分为 黑盒测试 白盒测试 灰
  • 手撕八大排序(上)

    排序的概念及其引用 排序的概念 排序 所谓排序 就是使一串记录 按照其中的某个或某些关键字的大小 递增或递减的排列起来的操作 稳定性 假定在待排序的记录序列中 存在多个具有相同的关键字的记录 若经过排序 这些记录的相对次序保持不变 即在原序
  • vue富文本编辑器中上传图片

    啊 好久没更新了 最近粉丝和访问量见长 正好有童鞋的项目遇到点问题 故出此文 今天超哥给小伙伴带来的是vue中富文本编辑器上传的问题 曾经写过一个文档管理的项目 用到最多的就是富文本编辑器 说说遇到的坑吧 最终的提交结果 后端不要文档流 后
  • jmap命令(Java Memory Map)

    JDK内置工具使用 一 javah命令 C Header and Stub File Generator 二 jps命令 Java Virtual Machine Process Status Tool 三 jstack命令 Java St