jdk-jmap命令

2023-11-05

jmap命令详解

jmap是JVM自带的堆内存转储(heap dump)生成工具,可以用来分析某JVM进程的堆内存占用,以及所有对象的概况。其用法说明如下所示。
在这里插入图片描述

-heap:打印堆配置信息和使用概况

在这里插入图片描述
在Heap Configuration一节,会输出与堆相关的JVM参数。在Heap Usage一节,会输出新生代(Eden区、Survivor From/To区)和老生代的容量、用量和空闲量。除此之外,还会输出采用的垃圾收集器,以及字符串常量池中驻留的字符串数量、大小等。

-histo:生成类的实例统计直方图

在这里插入图片描述
打印的结果有实例数、占用内存总大小和类的全限定名,并按占用内存降序排序。如果在-histo后面加上:live开关的话,表示只统计存活的对象,即在统计之前会触发一次Full GC。

特别注意,遍历堆并生成直方图的过程中,目标JVM都是stop-the-world的,所以对于较大的堆或者生产环境上的程序,要谨慎执行。如果目标JVM无响应,就加上-F参数强制执行之(同jstack),此时:live开关无效化。

-dump:生成堆转储快照文件

例如:jmap -dump:format=b,file=12479.dump 12479
在这里插入图片描述
生成的二进制快照文件可以使用jhat、MAT、VisualVM等带有分析heap dump功能的工具查看详情,比如通过保留大小(retained size)指标来观察有哪些对象在引用大对象。

:live开关和-F参数的功能与-histo选项下相同,并且生成快照文件的过程同样会stop-the-world。

-finalizerinfo:输出等待finalize的对象数

在这里插入图片描述

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

jdk-jmap命令 的相关文章

随机推荐

  • Alist V3 “全新版本“ 使用 安装/启动 教程!

    Introduction AList文档 nn ci 如果安装了Docker 请确保将其添加到系统的PATH变量中 您可以通过在终端中运行命令echo PATH来检查这一点 输出应该包括码头工人二进制文件的路径 通常是 usr bin 码头
  • RuntimeError: Pin memory thread exited unexpectedly 或 OSError: [Errno 9] Bad file descriptor 的解决方法

    遇到这几个错 大多是因为内存不足 我的解决方法 方案一 pin memory 不变 pin memory的值仍然为True 不需要改为False 而是把batch size 和 num worker的值分别调成 batch size 2 n
  • 10-20-010-简介-目录-Kylin目录详解

    文章目录 1 视界 1 Kylin二进制源码目录解析 2 HDFS 目录结构 2 1 cardinality 2 2 coprocessor 2 3 kylin job id 2 4 resources 2 5 jdbc resources
  • 基于vue构建lib + 类型声明文件

    构建lib 通过创建一个vue项目 实现自己的组件或工具类 然后创建一个index ts作为导出的入口文件 接下来就可以通过Vue CLIkais构建自己的lib了 index ts export Fns from utils fn 创建了
  • 基于STM32的阿里云物联网项目实战

    引言 之前自学了一些关于阿里云物联网项目的开发 收获颇丰 但是总感觉网上的东西太散了 需要自己去不停的收集整理 于是在项目结束后决心自己写一篇比较具有实用性的指导文档 需要声明的是本文档只适合像我一样的新人小白 路过的大佬不喜勿喷 如有疏漏
  • java开发实习生-面试

    redis常用命令 登录 redis cli p a 检查key是否存在 exists key 设置和获取一个键的值 set get 删除键对 del key 同时获取多个 mget linux常用命令 list 查看文件 cd 切换目录
  • 持续交付与敏捷开发的历史

    软件中的 持续交付 不仅仅是一个热门话题 软件的持续交付是软件开发实践和客户保留的圣杯 这也是DevOps今天是如此热门的概念的原因 要了解持续交付的重要性 你需要了解敏捷的历史以及敏捷方法的来源 敏捷软件开发的历史并不是从敏捷宣言开始的
  • Spark:failed to launch: nice -n 0 /opt/spark/bin/spark-class org.apache.spark.deploy.worker.

    查看真实的报错结果 bash 4 4 cat spark org apache spark deploy master Master 1 spark manager 77d4d75859 kbr5v out nohup can t exec
  • 2023-9-11 台阶-Nim游戏

    题目链接 台阶 Nim游戏 include
  • 七大排序算法详解,动图展示 +代码实现,老奶奶看了都直呼内行

    七种 基于比较 的排序 1 插入排序 元素少时插排最快 2 希尔排序 3 选择排序 4 堆排序 5 冒泡排序 6 快速排序 重点 7 归并排序 重点 排序总结 1 插入排序 元素少时插排最快 1 有序区间 黄色区间 无序区间 蓝色区间 每次
  • 人脸识别之目标追踪识别

    人脸识别之目标追踪识别 1 开发工具 Python版本 Anaconda 3 8环境 开发软件 Pycharm社区版 相关模块 sys模块 pypinyin模块 os模块 opencv contrib python 模块 opencv py
  • grafana改用https登录

    grafana添加HTTPS证书 安装 openssl yum install y openssl 创建 certificates openssl req x509 out server crt keyout server key newk
  • mysql--排序

    在项目开发时 为了使查询的数据结果满足用户的要求 通常会对查询出的数据进行上升或下降的排序 MySQL针对不同的开发需求提供两种排序的方式 分别为单字段排序和多字段排序 接下来将对这两种排序方式的语法及使用进行详细讲解 1 单字段排序 单字
  • Android 7.0新特性总结

    2016年8月22日 谷歌正式推送Android 7 0 Nougat 牛轧糖 正式版 他们还会三个月一次推送开发版 而曝光的消息看 第一个开发版就是Android 7 1 Android N主要新增了以下的新特性和优化 一 新的Notif
  • LeetCode_433. 最小基因变化

    题目链接 力扣 这道题是一道经典的BFS题型 我觉得可能会踩坑导致不能一次AC的地方有两处 一是bankSize可能为0 那么我们开辟一个记录数组的时候会报错 二是题目所说的 起始基因序列 start 默认是有效的 但是它并不一定会出现在基
  • java 多线程 总结三

    本文转载至 http blog csdn net vking wang article details 9952063 1 synchronized 把代码块声明为 synchronized 有两个重要后果 通常是指该代码具有 原子性 at
  • MYSQL--基础--06--delete删除数据,磁盘空间未释放的解决办法

    MYSQL 基础 06 delete删除数据 磁盘空间未释放的解决办法 1 原因 使用delete删除数据 不会把数据文件删除 而是将数据文件的标识位删除 因此会留下数据碎片 当有新数据写入的时候 mysql会利用这些已删除的空间再写入 如
  • MIPI D-PHY TX 一致性测试实例解析 Part 02

    如果测过1 3 x 并对这组测试的细节已经熟悉的前提下 1 4 x的测试将会变得轻松 因为几乎相同的测试项被用于时钟通道的数据测量 因此 接下来 仅着重对其中的不同点进行讨论 由于小编的工程应用中 不需要时钟工作于LP模式 因此 本章节中部
  • 点云文件的格式转换:ply转pcd,pcd转pth,查看pth格式文件

    1 ply格式转pcd格式 import open3d as o3d def convert ply to pcd ply file pcd file 读取PLY文件 point cloud o3d io read point cloud
  • jdk-jmap命令

    jmap命令详解 jmap是JVM自带的堆内存转储 heap dump 生成工具 可以用来分析某JVM进程的堆内存占用 以及所有对象的概况 其用法说明如下所示 heap 打印堆配置信息和使用概况 在Heap Configuration一节