Day11-JDK堆内存快照工具-jmap(一)基本应用

前言

总算要来介绍让我踏入JDK研究的工具了!!jmap可做到的事情很多,所以我会拆成几篇来介绍。

jmap介绍

jmap全名:JVM Memory Map,主要用於输出指定Java进程的共享物件记忆体对映或堆记忆体细节,可以dump文件。
在遇到OutOfMemoryError: Java heap space(也就是OOM)问题时,这工具是是首选。

指令介绍

jmap -clstats <pid>
jmap -finalizerinfo <pid>
jmap -histo[:live] <pid>
jmap -dump:<dump-option> <pid>

主要会着重在dump的指令介绍

可以透过jmap 或jmap -help查看此指令的说明资讯
https://ithelp.ithome.com.tw/upload/images/20210926/20140481dtFhNtzrJo.png


这边我拿昨天的范例(Day10-JDK查看虚拟机配置讯息工具:jinfo)进行运行Step1.~Step3.

  • -clstats:指定正在运行中的Java进程类加载统计数据

https://ithelp.ithome.com.tw/upload/images/20210926/20140481y7AKChcRX7.png

  • -finalizerinfo:awaiting finalization

https://ithelp.ithome.com.tw/upload/images/20210926/20140481PQjslktAE8.png

  • -histo:用来输出Java堆对象的直方图

https://ithelp.ithome.com.tw/upload/images/20210926/20140481UdYxKQ8s6y.png
可加上live:只会输出指令当下存在的对象

  • -dump

https://ithelp.ithome.com.tw/upload/images/20210926/20140481FYsQR8PtWI.png

不小心...手误按出发送...啊嘶!!只好...有机会再来补完整一点QQ


<<:  补充: 建立 Todo list 画面

>>:  Parser Generator (三)

D10 - 彭彭的课程#Python 流程控制:回圈基础,while 回圈、for 回圈

假日发一波真的是令人感动 其实我在看这课程的时候都放两倍速听 刚好友人来玩经过我位置居然跟我说在听什...

Ruby、演算法学习心得(一) 二元搜寻法 Binary Search。

铁人赛结束後一阵空虚?? 文章内容都会以Ruby来撰写程序码,然後继续来传教K-POP啦! 有请韩国...

[30天 Vue学好学满 DAY23] Vue Router-2

昨天笔记了基础Vue Router 以及 History概念,今天继续笔记其他细项用法。 动态路由 ...

D28 - 如何打包 Apps Script 的程序码?(一) 变成扩充功能似的 UI 按键

今天的目标 要怎麽将我们的 GAS 成果打包成别人可以使用的版本?我们已经学了快一个月的 GAS 使...

Day 5— 自动化回信机(2) 读取试算表内容

昨天我们把试算表的前置作业完成,今天我们来看看将别人填表单後送到试算表中的内容怎麽被读取。 首先先来...