zoukankan      html  css  js  c++  java
  • jmap, jhat命令

     

    jmap命令有下面几种常用的用法

    jmap [pid]

    jmap -histo:live [pid] >a.log

    jmap -dump:live,format=b,file=xxx.xxx [pid]

    用得最多是后面两个。其中,jmap -histo:live [pid] 可以查看当前Java进程创建的活跃对象数目和占用内存大小。

     

    jmap查看各个代的内存使用

    jmap 可以从 core dump文件或进程中获得内存的具体匹配情况,包括 Heap size, Perm size等等。

    jmap命令格式:

         jmap [ option ] <pid> | <executable core> | <[server-id@]remote-hostname-or-IP>

    1)参数说明 

    pid:java进程 id

    executable:产生 core dump的 java可执行程序

    core:core dump文件

    remote-hostname-or-IP:远程 debug服务的主机名或 ip

    server-id:远程 debug服务的 id

    2) option参数:

    -heap

    打印heap的概要信息,GC 使用的算法,heap的配置及使用情况 .

    -histo[:live]

    打印jvm heap 的直方图。输出类名、每个类的实例数目、对象占用大小。 VM的内部类名字开头会加上前缀 ”*”.

    如果加上live 则只统计活的对象数量。

    -dump:[live,]format=b,file=<filename>

    使用hprof二进制形式,导出heap 内容到文件filename。

    假如指定live 选项,那么只输出活的对象到文件 .

    hprof二进制可用jhat命令查看,

    jhat是sun 1.6及以上版本中自带的一个用于分析JVM 堆DUMP 文件的工具,基于此工具可分析JVM HEAP 中对象的内存占用情况

    一般情况下,我们都会配置上-XX:+HeapDumpOnOutOfMemoryError,

     然后使用MAT工具去分析(Memory Analyzer Tool ),MAT使用很简单。

    -clstats

    打印classload 和jvm heap 持久代的信息。

    包含每个classloader 的名字、是否存活、地址、父 classloade、加载的 class数量、内部 String的数量和占用内存数。

    使用 jmap -heap pid ,可以查看各个代的内存使用情况,如:New Generation(Eden Space,From Space,To Space),tenured generation,Perm Generation的内存使用情况。

    jmap -dump:format=b,file=heapdump.hprof <pid> ,导出heap dump到文件heapdump.hprof

  • 相关阅读:
    Powershell数据处理
    Powershell About Active Directory Group Membership of a domain user
    Powershell About Active Directory Server
    Oracle Schema Objects——Tables——TableStorage
    Oracle Schema Objects——Tables——TableType
    English Grammar
    Oracle Database Documentation
    Oracle Schema Objects——Tables——Oracle Data Types
    Oracle Schema Objects——Tables——Overview of Tables
    What is Grammar?
  • 原文地址:https://www.cnblogs.com/ken-jl/p/8998880.html
Copyright © 2011-2022 走看看