`

Java编译调试之常用命令 之jmap

阅读更多
jmap命令
ps -ef| grep java
root      1426  1359  0 10:30 pts/0    00:00:00 grep java
root      7807     1  0 Apr28 ?        00:22:52 /usr/java/jdk1.8.0_45/bin/java -Djava.util.logging.config.file=/opt/apache-tomcat-8.0.30/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.endorsed.dirs=/opt/apache-tomcat-8.0.30/endorsed -classpath /opt/apache-tomcat-8.0.30/bin/bootstrap.jar:/opt/apache-tomcat-8.0.30/bin/tomcat-juli.jar -Dcatalina.base=/opt/apache-tomcat-8.0.30 -Dcatalina.home=/opt/apache-tomcat-8.0.30 -Djava.io.tmpdir=/opt/apache-tomcat-8.0.30/temp org.apache.catalina.startup.Bootstrap start

jmap 7807
Attaching to process ID 7807, please wait...
Debugger attached successfully.
Server compiler detected.
JVM version is 25.45-b02
0x0000000000400000  7K  /usr/java/jdk1.8.0_45/bin/java
0x00007f17958dd000  36K /usr/java/jdk1.8.0_45/jre/lib/amd64/libawt_headless.so
0x00007f1795ae4000  754K    /usr/java/jdk1.8.0_45/jre/lib/amd64/libawt.so
0x00007f17eaee5000  108K    /lib64/libresolv-2.12.so
0x00007f17ecf03000  26K /lib64/libnss_dns-2.12.so
0x00007f17ee21f000  88K /lib64/libgcc_s-4.4.7-20120601.so.1
0x00007f17ee435000  250K    /usr/java/jdk1.8.0_45/jre/lib/amd64/libsunec.so
0x00007f17ee97d000  90K /usr/java/jdk1.8.0_45/jre/lib/amd64/libnio.so
0x00007f17eeb8e000  113K    /usr/java/jdk1.8.0_45/jre/lib/amd64/libnet.so
0x00007f17eeda5000  48K /usr/java/jdk1.8.0_45/jre/lib/amd64/libmanagement.so
0x00007f180880a000  121K    /usr/java/jdk1.8.0_45/jre/lib/amd64/libzip.so
0x00007f1808a25000  64K /lib64/libnss_files-2.12.so
0x00007f1808c33000  220K    /usr/java/jdk1.8.0_45/jre/lib/amd64/libjava.so
0x00007f1808e5f000  64K /usr/java/jdk1.8.0_45/jre/lib/amd64/libverify.so
0x00007f180906e000  42K /lib64/librt-2.12.so
0x00007f1809276000  582K    /lib64/libm-2.12.so
0x00007f18094fa000  16440K  /usr/java/jdk1.8.0_45/jre/lib/amd64/server/libjvm.so
0x00007f180a4c2000  1876K   /lib64/libc-2.12.so
0x00007f180a856000  19K /lib64/libdl-2.12.so
0x00007f180aa5a000  100K    /usr/java/jdk1.8.0_45/lib/amd64/jli/libjli.so
0x00007f180ac70000  139K    /lib64/libpthread-2.12.so
0x00007f180ae8d000  150K    /lib64/ld-2.12.so

jmap -heap 7807
Attaching to process ID 7807, please wait...
Debugger attached successfully.
Server compiler detected.
JVM version is 25.45-b02

using thread-local object allocation.
Parallel GC with 2 thread(s)

Heap Configuration:
   MinHeapFreeRatio         = 0
   MaxHeapFreeRatio         = 100
   MaxHeapSize              = 1006632960 (960.0MB)
   NewSize                  = 20971520 (20.0MB)
   MaxNewSize               = 335544320 (320.0MB)
   OldSize                  = 41943040 (40.0MB)
   NewRatio                 = 2
   SurvivorRatio            = 8
   MetaspaceSize            = 21807104 (20.796875MB)
   CompressedClassSpaceSize = 1073741824 (1024.0MB)
   MaxMetaspaceSize         = 17592186044415 MB
   G1HeapRegionSize         = 0 (0.0MB)

Heap Usage:
PS Young Generation
Eden Space: ----------------------------------------伊甸园
   capacity = 122683392 (117.0MB)
   used     = 84779408 (80.85194396972656MB)
   free     = 37903984 (36.14805603027344MB)
   69.10422561515091% used
From Space: ----------------------------------------年轻代(幸存者乐园1)
   capacity = 524288 (0.5MB)
   used     = 32768 (0.03125MB)
   free     = 491520 (0.46875MB)
   6.25% used
To Space: ------------------------------------------年轻代(幸存者乐园2)
   capacity = 38273024 (36.5MB)
   used     = 0 (0.0MB)
   free     = 38273024 (36.5MB)
   0.0% used
PS Old Generation ----------------------------------老年代(终身颐养园)
   capacity = 271581184 (259.0MB)
   used     = 212289648 (202.45518493652344MB)
   free     = 59291536 (56.54481506347656MB)
   78.16802507201677% used

33603 interned Strings occupying 3737888 bytes.

jmap -histo 7807 | head -30
num     #instances         #bytes  class name
----------------------------------------------
   1:        346185      117868872  [B
   2:        603520       64592800  [C
   3:        145217       13940832  java.util.jar.JarFile$JarFileEntry
   4:        578985       13895640  java.lang.String
   5:        126460       13392344  [I
   6:        200368        8014720  java.util.TreeMap$Entry
   7:        247294        7913408  java.util.HashMap$Node
   8:        118956        4758240  java.util.HashMap$KeyIterator
   9:         21730        3842512  [Ljava.util.HashMap$Node;
  10:        100798        3225536  java.io.File
  11:         76437        3057480  java.util.HashMap$ValueIterator
  12:         39387        2372408  [Ljava.lang.Object;
  13:         32109        2054976  java.net.URL
  14:         28289        2036808  java.util.regex.Pattern
  15:         76439        1834536  org.apache.catalina.LifecycleEvent
  16:         62955        1814072  [Ljava.lang.String;
  17:         28177        1803328  java.util.regex.Matcher
  18:         14724        1665208  java.lang.Class
  19:         28161        1577016  [Ljava.util.regex.Pattern$GroupHead;
  20:         17892        1574496  java.lang.reflect.Method
  21:         76439        1534144  [Lorg.apache.catalina.Container;
  22:         30096        1444608  java.util.HashMap
  23:         26811        1072440  java.util.LinkedHashMap$Entry
  24:         31914        1021248  java.util.concurrent.ConcurrentHashMap$Node
  25:         19139         918672  org.apache.catalina.loader.ResourceEntry
  26:         35760         858240  java.util.ArrayList
  27:         13861         776216  java.util.concurrent.ConcurrentHashMap$ValueIterator

java类型描述符:
参照:http://blog.csdn.net/qinjuning/article/details/7599796

jmap -dump:live,format=b,file=/home/temp.hprof 7807

Dumping heap to /home/soft/0503.hprof ...
file size limit

jmap毕竟是命令工具,过于抽象,可以使用jdk自带的visualvm图形界面查看!
C:\Program Files\Java\jdk1.7.0_71\bin\jvisualvm.exe
分享到:
评论

相关推荐

    jdk常用命令

    本文将深入探讨JDK中的常用命令,这些命令对于任何Java开发者来说都是必不可少的知识点。通过理解并熟练运用这些命令,可以极大地提高开发效率。 1. **javac**:这是Java编译器,用于将源代码(.java文件)转换成可...

    java 2语言命令详解

    `java` 命令用于运行编译后的Java程序。当你拥有一个或多个`.class`文件时,使用此命令启动虚拟机执行程序。例如,如果`HelloWorld.class`是已编译的程序,运行命令如下: ``` java HelloWorld ``` 3. **jar**...

    java 2语言命令详解 JAVA程序设计

    Java 2语言命令详解是Java编程领域中的一个重要环节,它涉及到如何在命令行环境中编译、运行和管理Java应用程序。本文将深入解析Java 2语言的相关命令,帮助读者理解和掌握JAVA程序设计的基础知识。 首先,我们需要...

    Java2语言命令详解

    Java2语言命令详解 在Java编程领域,理解并掌握各种...通过理解和熟练运用这些Java2命令,开发者能够更高效地进行开发、测试和调试工作,提升工作效率。不断学习和实践这些命令,将使你在Java开发过程中游刃有余。

    java2应用命令详解

    Java 2 应用命令主要指的是用于管理、编译、运行和调试 Java 程序的一系列命令。这些命令使得开发者能够在不同的操作系统上高效地工作,无论是在 Windows、Linux 还是 macOS 上。以下将详细介绍一些核心的 Java 命令...

    Java2 语言命令详解

    2. **javac命令**: Java源代码编译器,将.java文件编译成.class字节码文件。例如,`javac HelloWorld.java` 将编译HelloWorld.java文件,生成HelloWorld.class。 3. **java命令**: 用于执行Java字节码文件。例如,`...

    JAVA 程序员常用参考文档

    Java是世界上最流行的编程语言之一,尤其对于后端开发而言,它是不可或缺的工具。"JAVA程序员常用参考文档"这个压缩包,很显然包含了Java开发者在日常工作中可能会频繁查阅的重要资料。这里我们将深入探讨JDK(Java ...

    Java Command

    Java命令行工具是Java开发和运行过程中的基础,它们提供了对Java环境的全面管理,包括启动Java应用程序、编译源代码、查看类信息以及管理Java虚拟机(JVM)。以下是一些重要的Java命令及其详细解释: 1. **java命令...

    jdk安装包-java开发工具.rar

    而JDK是Java开发环境的核心,它提供了编译Java源代码所需的javac编译器,运行Java程序的JVM,以及一系列的开发和调试工具,如javadoc(用于生成API文档)、jdb(Java调试器)和jar(打包工具)等。 接下来,我们将...

    java学习资料04

    2. **Java编译命令**:`javac`是Java的编译器,用于将源代码(.java文件)转换为可执行的字节码(.class文件)。了解如何使用javac命令行参数,例如`-classpath`和`-d`,对于构建复杂的项目结构至关重要。 3. **...

    java开发 线上问题排查命令详解

    jmap命令是JDK自带的工具软件,主要用于打印指定Java进程(或核心文件、远程调试服务器)的共享对象内存映射或堆内存细节。可以使用jmap生成堆转储快照(Heap Dump)。 常用指令: * jmap -heap 3331:查看java 堆...

    java JDK 实例

    1. **Java编译器(javac)**:Java源代码文件(.java)需要通过javac命令进行编译,生成字节码(.class)文件。例如,我们可以创建一个简单的"Hello, World!"程序,然后使用javac来编译它。 2. **Java运行时环境...

    JAVA命令大全-JVM设置.rar

    1. **Java启动命令**:`java`和`javac`是最基础的命令,分别用于执行已编译的Java类和编译源代码。此外,还有`jar`用于创建和管理Java归档文件,`javadoc`生成API文档,`jdb`用于调试Java程序等。 2. **JVM参数**:...

    java工具包java工具包java工具包

    Java工具包,通常被称为JDK(Java Development Kit),是Java编程语言的核心组成部分,它为开发者提供了编译、调试和运行Java程序所需的所有工具和库。这个工具包的重要性在于,它是构建和维护Java应用程序的基础,...

    java安装包.zip

    通过`javac MyProgram.java`命令,我们可以将名为"MyProgram"的源文件编译成可执行的字节码。 2. **Java解释器(java)**:负责运行编译后的字节码。当我们使用`java MyProgram`命令时,JVM(Java Virtual Machine...

Global site tag (gtag.js) - Google Analytics