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),使用参见:MAT(Memory Analyzer Tool)工具入门介绍)或与jhat (Java Heap Analysis Tool)一起使用,能够以图像的形式直观的展示当前内存是否有问题。
64位机上使用需要使用如下方式:jmap -J-d64 -heap pid
2.命令格式
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 dump的java可执行程序)
core 将被打印信息的core dump文件
remote-hostname-or-IP 远程debug服务的主机名或ip
server-id 唯一id,假如一台主机上多个远程debug服务
2).基本参数
-dump:[live,]format=b,file=<filename> 使用hprof二进制形式,输出jvm的heap内容到文件,live子选项是可选的,假如指定live选项,那么只输出活的对象到文件。
-finalizerinfo 打印正等候回收的对象的信息。
-heap 打印heap的概要信息,GC使用的算法,heap的配置及wise heap的使用情况。
-histo[:live] 打印每个class的实例数目,内存占用,类全名信息. VM的内部类名字开头会加上前缀”*”. 如果live子参数加上后,只统计活的对象数量。
-permstat 打印classload和jvm heap长久层的信息. 包含每个classloader的名字,活泼性,地址,父classloader和加载的class数量. 另外,内部String的数量和占用内存数也会打印出来。
-F 强迫在pid没有相应的时候使用-dump或者-histo参数,在这个模式下live子参数无效。
-h | -help 打印辅助信息
-J 传递参数给jmap启动的jvm
pid 需要被打印配相信息的java进程id,可以用jps查询
4.使用示例
1).jmap -histo 5644
2).jmap -dump:format=b,file=test.hprof 5644
文章来源:http://blog.csdn.net/fenglibing/article/details/6411953
相关推荐
### jvm常用命令工具 #### 一、概述 在程序运行过程中,经常会出现各种各样的问题,例如性能瓶颈、内存泄漏、死锁等。为了快速定位并解决问题,我们需要收集多种类型的运行时信息,包括但不限于系统日志、堆转储...
3. **jmap (Memory Map for Java)** jmap能输出指定进程的内存映射,包括堆的详细信息,如对象分配、存活对象的数量等。它还允许你导出heap dump文件,这对于分析内存泄漏或过大对象非常有帮助。例如,`jmap -histo...
jmap —— Java Memory Map `jmap` 能够从core文件或正在运行的进程中收集内存映射信息,包括Heap大小、PermGen空间大小等。这些信息对于诊断内存泄漏、分析内存使用模式极为有用。`jmap` 同样适用于Solaris和...
五、jmap (Memory Map) jmap主要用于导出内存映像文件和查看内存使用情况。基本语法: - `jmap -dump:format=b,file=<filename> <pid>`:导出内存映像文件。 - `jmap -heap <pid>`:显示堆内存配置和使用情况。 - `...
5. **jmap (Memory Map for Java)**: jmap用于查看JVM占用物理内存的状态,包括堆内存分配、垃圾收集器的状态等。此外,还可以导出堆转储文件,供其他工具分析。 示例: ```bash jmap -heap jmap -dump:...
- **概述**:`jmap`(JVM Memory Map)主要用于获取dump文件(堆转储快照文件),同时也可以获取目标Java进程的内存相关信息,如Java堆各区域的使用情况、堆中对象的统计信息、类加载信息等。 - **基本用法**: - `...
5. **jmap(Memory Map for Java)**:它可以导出堆内存快照,供其他工具如jhat或MAT进行分析,也可以获取垃圾收集器和堆内存的详细信息。 6. **jstack(Java Thread Stack Trace)**:提供Java线程堆栈信息,用于...
3. 终端命令监控(Terminal Command Monitoring):通过执行特定的命令,例如使用jps、jmap、jstack、jinfo、jstat等JDK自带工具,可以获取Java虚拟机(JVM)的运行状态信息。 4. 内存分析工具(Memory Analysis ...
jmap是JVM Memory Map的缩写,用于生成堆dump。jmap可以生成堆的快照,并将其保存到文件中,以便后续分析。 jmap的命令格式为: ``` jmap [options] ``` 例如: ``` $ jmap -dump:format=b,file=dump.hprof 1234 `...
jmap(Memory Map for Java)命令用于生成虚拟机的内存转储快照,可以帮助开发者和运维人员分析虚拟机的内存使用情况。jmap命令的基本语法如下: jmap [options] [vmid] 其中,options是可选参数,vmid是要监控的...
1. **获取.dump文件**:当应用程序出现内存问题时,使用JVM的`jmap`命令或应用工具(如VisualVM)生成.hprof文件。 2. **导入到MAT**:解压缩`memoryanalyzer_v1.5.0.rar`,运行MAT,导入生成的.hprof文件。 3. **...
“Java宝典大全”涵盖了Java开发的核心知识点,从JVM内部机制到常用API的深入解析,再到实战案例分析,为Java开发者提供了全方位的学习资料。通过对这些知识点的系统学习,开发者可以更加熟练地掌握Java编程技巧,...
4. **jmap(Memory Map for Java)**: jmap是一个内存映射工具,它可以提供堆dump文件,用于分析内存使用情况。例如,`jmap -dump:format=b,file=<filename> <pid>`会生成一个Hprof格式的内存转储文件,然后可以...
4. JMAP(Java Memory Map) JMAP用于生成堆转储快照,这对于获取dump文件、查询finalize执行队列、以及查看java堆和永久代的详细信息非常重要。例如,它能显示当前使用的是哪种垃圾回收器、参数配置、分代情况等。...
- **Java内存管理**:Java中的内存管理主要通过JVM来实现,包括内存分配、对象创建、垃圾收集等。 - **Java堆和栈**: - **堆**:用于存储所有类的实例和数组,由所有线程共享。 - **栈**:用于存储局部变量、操作...
- 学习使用JVM自带的工具,如jps查看正在运行的Java进程、jstack分析线程状态、jmap查看堆内存使用情况等,可以帮助我们更好地监控和调试程序。 **1.1.3 使用Java诊断工具** - Eclipse Memory Analyzer (MAT) 是一...
- 掌握如何使用JVM内置的命令行工具(jps、jstack、jmap等),以及第三方工具如VisualVM、MAT等进行性能监控和调优。 **1.1.3 Java诊断工具** - **Java诊断工具**:例如Eclipse Memory Analyzer (MAT)可以帮助分析...
**1.1.3 Java工具** - **命令行工具** - `jps`: 显示当前运行的JVM进程 - `jstack`: 获取指定PID的线程栈信息 - `jmap`: 生成heap dump文件,查看对象实例信息 - `jconsole`: GUI工具,监控JVM状态 - `jinfo`: ...
常规Java工具,算法,加密,数据库,面试题,源代码分析,解决方案: Alibaba_Druid AngularJS_String_SubString Big_Data_ETL C# CROS CrossOrigin_Request Eclipse_Referenced_File_Contains_Errors Git_Language_...
- **Jconsole/VisualVM/jps/jstat/jstack/jmap/jhat/jmeter**:这些工具可以帮助监控和分析应用程序的性能。 #### 十一、Java Web开发 Java Web开发涵盖了从架构设计到具体技术实现的多个方面: - **MVC**:模型-...