jmap名称:Java Memory Map(内存映射)

官方文档:https://docs.oracle.com/javase/1.5.0/docs/tooldocs/share/jmap.html

功能描述:

内容太多,直接看前辈们的总结:

java命令--jmap命令使用(这篇文章写得非常好)
https://www.cnblogs.com/kongzhongqijing/articles/3621163.html

Java虚拟机的内存组成以及堆内存介绍
http://www.hollischuang.com/archives/80

Java GC工作原理
http://www.hollischuang.com/archives/76

JVM内存区域划分Eden Space、Survivor Space、Tenured Gen,Perm Gen解释
https://www.cnblogs.com/kxm87/p/7205414.html

JDK,JRE,JVM区别与联系
http://www.hollischuang.com/archives/78

【JVM】12_空间分配担保(没看懂?)
https://blog.csdn.net/u013295276/article/details/78468790?locationNum=1&fps=1

下面是我的一个小小实践:

1.使用 jmap -dump:format=b,file=filename pid 命令将堆快照文件下载到本地

1
2
3
4
5
6
7
[root@hadoop ~]# jmap -dump:format=b,file=/root/heap.hprof 3346 #导出堆快照文件
Dumping heap to /root/heap.hprof ...
Heap dump file created
[root@hadoop ~]# ll #查看
total 8572
-rw-------  1 root root 4365247 Apr  9 08:15 heap.hprof
[root@hadoop ~]# sz heap.hprof #将文件下载到本地

2.使用JVM自带的JVisualVM工具查看堆快照文件

在%JAVA_HOME%/bin目录下双击jvisualvm.exe打开-->文件-->装入-->选择Dump文件类型-->找到堆快照文件-->打开

在类栏中找到你要查看的类名

双击进入实例数栏-->查看统计出的实例化的对象数目,分析对象的引用找到是谁在实例化此对象,从而找到产生大对象的原因。

jvm 性能调优工具之 jmap 命令详解的更多相关文章

  1. jvm 性能调优工具之 jps 命令详解

    JPS名称:jps - Java Virtual Machine Process Status Tool命令用法:jps [options] [hostid] options:命令选项,用来对输出格式 ...

  2. jvm 性能调优工具之 jstat 命令详解

    Jstat名称:Java Virtual Machine statistics monitoring tool 官方文档:https://docs.oracle.com/javase/1.5.0/do ...

  3. 【十一】jvm 性能调优工具之 jmap

    jvm 性能调优工具之 jmap 概述 命令jmap是一个多功能的命令.它可以生成 java 程序的 dump 文件, 也可以查看堆内对象示例的统计信息.查看 ClassLoader 的信息以及 fi ...

  4. jvm 性能调优工具之 jmap

    概述 命令jmap是一个多功能的命令.它可以生成 java 程序的 dump 文件, 也可以查看堆内对象示例的统计信息.查看 ClassLoader 的信息以及 finalizer 队列. jmap ...

  5. JVM 性能调优工具

    jdk自带的工具,在macOs系统中的目录位置(jdk具体版本位置要替换):/Library/Java/JavaVirtualMachines/jdk1.8.0_191.jdk/Contents/Ho ...

  6. 【十二】jvm 性能调优工具之 jhat (JVM Heap Analysis Tool)

    jhat也是jdk内置的工具之一.主要是用来分析java堆的命令,可以将堆中的对象以html的形式显示出来,包括对象的数量,大小等等,并支持对象查询语言. jhat 非常耗费cpu和内存,所以一般不使 ...

  7. jvm性能调优工具

    1.jstat 命令 jstat: 查看类装载,内存,垃圾收集,gc相关信息 命令参数 # jstat -option -t #option:参数选项,-t:显示系统的时间 # jstat -opti ...

  8. 【十三】jvm 性能调优工具之 jstack

    一.介绍 jstack是java虚拟机自带的一种堆栈跟踪工具.jstack用于打印出给定的java进程ID或core file或远程调试服务的Java堆栈信息,如果是在64位机器上,需要指定选项&qu ...

  9. jvm 性能调优工具之 jstat

    概述 Jstat是JDK自带的一个轻量级小工具.全称“Java Virtual Machine statistics monitoring tool”,它位于java的bin目录下,主要利用JVM内建 ...

随机推荐

  1. php原型模式(prototype pattern)

    练练练,计划上午练完创建型设计模式. <?php /* The prototype pattern replicates other objects by use of cloning. Wha ...

  2. JPA(java持久化API)的环境的搭建

    因为我使用的是java工程 所以需要引入的依赖有: <properties> <project.build.sourceEncoding>UTF-8</project.b ...

  3. 项目Beta冲刺--3/7

    项目Beta冲刺--3/7 作业要求 这个作业属于哪个课程 软件工程1916-W(福州大学) 这个作业要求在哪里 项目Beta冲刺 团队名称 基于云的胜利冲锋队 项目名称 云评:高校学生成绩综合评估及 ...

  4. 【Android Studio】Gradle

    Plugin version Required Gradle version 1.0.0 - 1.1.3 2.2.1 - 2.3 1.2.0 - 1.3.1 2.2.1 - 2.9 1.5.0 2.2 ...

  5. go中的字符串数值转化

    #string到int int,err := strconv.Atoi(string) #string到int64 int64, err := strconv.ParseInt(string, 10, ...

  6. CENTOS 7 下安装 REDIS 5.0.6 完整步骤

    第一步:下载redis安装包 wget   http://download.redis.io/releases/redis-5.0.6.tar.gz 第二步:解压压缩包 tar -zxvf redis ...

  7. TCP三次握手的过程,accept发生在三次握手的哪一个阶段?

    答案是:accept过程发生在三次握手之后,三次握手完成后,客户端和服务器就建立了tcp连接并可以进行数据交互了.这时可以调用accept函数获得此连接. TCP Accept总结 TCP Accep ...

  8. CGLIB和Java动态代理的区别(笔记)

    java常用知识点: 1.Java动态代理只能够对接口进行代理,不能对普通的类进行代理(因为所有生成的代理类的父类为Proxy,Java类继承机制不允许多重继承):CGLIB能够代理普通类:2.Jav ...

  9. nginx 配置虚拟主机( 基于域名 )

    一.创建网站目录及文件: [root@localhost data]# tree /data /data └── wwwroot ├── www..com │   └── index.html └── ...

  10. data.table

    data.table: Extension of 'data.frame' 安装 data.table install.packages("data.table") 官网:http ...