jmap是jdk中提供的一个用来监视进程运行中的jvm物理内存的占用情况的工具。该进程内存内,所有对象的情况,例如产生了哪些对象,对象数量。当系统崩溃时,jmap 可以从core文件或进程中获得内存的具体匹配情况,包括Heap size, Perm size等。

使用jmap会影响线上运行的应用,所以尽量不要在线上执行此命令。

$  jmap -histo pid | head -n 10           查看前10位

$  jmap -histo pid | sort -k 2 -g -r     查看对象数最多的对象,按降序输出

$  jmap -histo pid | sort -k 3 -g -r       查看内存的对象,按降序输出

通过这三个命令,我们可以很清楚的看到当前进程中对象的大小及个数,从而辅助我们进行分析

hprof 文件是 Java 的 内存快照文件(Heap Profile 的缩写),格式为java_pid*.hprof

用于分析 OOM: OutOfMemoryError(堆)内存不足错误,是 JVM 设置 -XX:+HeapDumpOnOutOfMemoryError 参数时打印的内容

$ jmap -dump:format=b,file=java_${pid}.hprof   ${pid}

使用jmap把堆信息导出,生成堆转储快照dump文件,并使用可视化工具分析

以hprof二进制格式转储Java堆到指定filename的文件中

live子选项是可选的。如果指定了live子选项,堆中只有活动的对象会被转储

想要浏览heap dump,你可以使用jhat(Java堆分析工具)读取生成的文件

这个命令执行,JVM会将整个heap的信息dump写入到一个文件,heap如果比较大的话,就会导致这个过程比较耗时,并且执行的过程中为了保证dump的信息是可靠的,所以会暂停应用, 线上系统慎用。

jdk命令行工具

https://g.yuque.com/keep_running/java/yu3mqz?language=en-us

JVM 配置简洁说明

https://www.jianshu.com/p/cd788cc16424

G1 GC:一个神奇的 JVM 参数,减少你的内存消耗

https://www.jianshu.com/p/ff593b506237

Java常用分析工具之jmap

https://www.bo56.com/java%E5%B8%B8%E7%94%A8%E5%88%86%E6%9E%90%E5%B7%A5%E5%85%B7%E4%B9%8Bjmap/

JVM性能调优监控工具jps、jstack、jmap、jhat、jstat使用详解

https://cloud.tencent.com/developer/article/1543603?from=information.detail.jstack%E6%80%8E%E4%B9%88%E4%BD%BF%E7%94%A8

三个实例演示 Java Thread Dump 日志分析

https://www.cnblogs.com/zhengyun_ustc/archive/2013/01/06/dumpanalysis.html

Java Platform, Standard Edition Tools Reference

https://docs.oracle.com/javase/8/docs/technotes/tools/unix/

##############################################################

可视化在线内存分析工具(Java Memory Head Dump Analyzer Tool)

https://blog.csdn.net/weixin_30484149/article/details/112693697

https://heaphero.io/index.jsp

1. 为方便上传,可先将dump文件压缩成 zip 或者 gz 格式

2. 可将分析结果导出成PDF,便于下载分析

How to fix ?

To see our recommendations, please purchase Enterprise Edition.

https://heaphero.io/heap-pricing.jsp

HeapHero有何不同?

https://www.codenong.com/cs106805848/

使用HeapHero分析JVM-OOM日志

https://www.pianshen.com/article/8017691649

Java 的 内存快照 hprof文件查看

https://cloud.tencent.com/developer/article/1677249

Jprofile查看hprof文件

https://cloud.tencent.com/developer/article/1633775

jprofile解析dump文件使用详解

https://cloud.tencent.com/developer/article/1633461

如何分析.hprof文件?(How do I analyze a .hprof file?)

https://www.it1352.com/957587.html

java 性能优化分析工具_【java】JVM性能调优监控工具、可视化在线内存分析工具...相关推荐

  1. 在线图表分析制作_(漂亮)象形柱状图表制作 在线图表制作工具

    象形柱状图表属于柱状图的一种,支持一柱一折的方式表达2个数据的变化趋势. 其特色特点在于图形表达能力强,比传统的柱状图更具有视觉效果. 下面上图,效果不错. 目前图表制作工具中,以下图表制作是免费的在 ...

  2. JVM 调优实战--可视化GC日志分析工具GC Easy使用教程

    设置GC日志输出参数 将GC日志信息生成到文件中: 将会在F://test目录生成gc.log文件: GC Easy可视化工具 导致GC的原因:

  3. Apache Doris性能优化之Join Reorder和Doris Join调优原则

    目录 1. Join Reorder 1.1 介绍 1.2 Join Reorder逻辑 2. Doris Join调优原则 1. Join Reorder 1.1 介绍 Join Reorder功能 ...

  4. Java 性能优化系列之3.1[JVM调优]

    Java 虚拟机内存模型 JVM 虚拟机将其内存数据分为程序计数器.虚拟机栈.本地方法栈.Java 堆和方法区等部分. 程序计数器用于存放下一条运行的指令:虚拟机栈和本地方法栈用于存放函数调用栈信息: ...

  5. python 性能优化监控工具_推荐一款非常实用的JVM性能调优监控工具(亲测好用)...

    前言 现实企业级Java开发中,有时候我们会碰到下面这些问题: 1.OutOfMemoryError,内存不足 2.内存泄露 3.线程死锁 4.锁争用(Lock Contention) 5.Java进 ...

  6. Java虚拟机学习总结(4)—— JVM 性能调优常用参数详解

    前言 在JVM性能调优时有三个组件: 堆大小调整(内存最够大的话,尽量搞大点) 垃圾收集器调整 JIT 编译器(比较深,需要掌握源码才能更好的优化更加底层) 大多数调优选项都与调整堆大小和为您的情况选 ...

  7. jvm调优工具_JVM性能调优监控工具jps、jstack、jmap、jhat、hprof使用详解

    来自:ITeye博客, 作者:Josh_Persistence 链接:https://www.iteye.com/blog/josh-persistence-2161848 现实企业级Java应用开发 ...

  8. java虚拟机调优_Java虚拟机中JVM参数调优及其有用的命令

    3.1参数及调优 1.-XX:-HeapDumpOnOutOfMemoryError:当首次遭遇内存溢出时Dump出此时的堆内存. 2.-XX:HeapDumpPath=./java_pid.hpro ...

  9. jvm调优工具_JVM性能调优监控工具jps、jstack、jmap、jhat、jstat、hprof使用

    现实企业级Java应用开发.维护中,有时候我们会碰到下面这些问题: OutOfMemoryError,内存不足 内存泄露 线程死锁 锁争用(Lock Contention) Java进程消耗CPU过高 ...

  10. JVM性能调优监控工具专题一:JVM自带性能调优工具(jps,jstack,jmap,jhat,jstat,hprof)...

    2019独角兽企业重金招聘Python工程师标准>>> 前提概要:         JDK本身提供了很多方便的JVM性能调优监控工具,除了集成式的VisualVM和jConsole外 ...

最新文章

  1. 陈慧琳的10招不节食瘦身法 - 健康程序员,至尚生活!
  2. cf 1504 F. Flip the Cards
  3. web.xml中webAppRootKey
  4. python 提取最小外接矩形_python给人脸带上口罩(简单版)
  5. 【转】前端进阶之路:如何高质量完成产品需求开发
  6. [转载]C++ 中有符号类型到无符号类型的转换(C和C++程序员面试秘笈P9面试题6)...
  7. 有没有计算机用户号,刚做的系统怎么有账户-用户帐号系统设计的原则有哪些?...
  8. 男人的爱只有一次----女孩你珍惜了吗
  9. 重温LuGre摩擦力模型
  10. SOMEIP报文格式部分字段概述(二)
  11. PS中缩放工具的细微缩放不可以使用的解决方法
  12. asp.net中gridview的绑定数据源实现增删改查
  13. Leetcode实战:121.买卖股票的最佳时机
  14. 2021哈工大计算机专业考研参考书,哈尔滨工业大学计算机专业考研参考书目推荐...
  15. 考试系统mysql数据库设计_驾校理论考试系统之数据库设计一
  16. 【SemiDrive源码分析】【Yocto源码分析】02 - yocto/meta-openembedded目录源码分析
  17. Python实现手写体数字图片识别+GUI界面+画板数字识别
  18. 有道翻译 爬虫,分析反爬 附代码
  19. Python破解百度翻译反爬机制---自制翻译器
  20. 恶魔的奶爸英语 初级教程

热门文章

  1. Java七大设计模式原则(附相关电子图书下载)
  2. 项目在linux下运行情况,Linux系统下部署项目的设置方法
  3. mysql为什么尽量少星号,mysql – select中是否存在星号排除其他列?
  4. java nmap集成_nmap为了开发方便 可以做简单的修改
  5. Python六大开源框架对比:Web2py略胜一筹(转)
  6. 将根据时间戳增量数据方案修改为根据批次号增量数据方案
  7. 【最佳实践】如何搭建反向代理服务访问OSS资源?
  8. code review平台Rietveld应用指南
  9. IBM小型机维护手册
  10. c语言字符串注入命令,C语言基础之输入输出、常量定义、随机数、动态链接库的注入、数据类型介绍、goto语句的使用...