zoukankan      html  css  js  c++  java
  • jmap查看内存使用情况与生成heapdump

    jmap
    JVM Memory Map命令用于生成heap dump文件,如果不使用这个命令,还可以使用-XX:+HeapDumpOnOutOfMemoryError参数来让虚拟机出现OOM的时候自动生成dump文件。 jmap不仅能生成dump文件,还可以查询finalize执行队列、Java堆和永久代的详细信息,如当前使用率、当前使用的是哪种收集器等。
     

    参数

    option:选项参数,不可同时使用多个选项参数

    pid:java进程id,命令ps -ef | grep java获取

    executable:产生核心dump的java可执行文件

    core:需要打印配置信息的核心文件

    remote-hostname-or-ip:远程调试的主机名或ip

    server-id:可选的唯一id,如果相同的远程主机上运行了多台调试服务器,用此选项参数标识服务器

     

    options参数

    heap : 显示Java堆详细信息
    histo : 显示堆中对象的统计信息
    permstat :Java堆内存的永久保存区域的类加载器的统计信息
    finalizerinfo : 显示在F-Queue队列等待Finalizer线程执行finalizer方法的对象
    dump : 生成堆转储快照
    F : 当-dump没有响应时,强制生成dump快照
     

    示例

     

    -dump

    dump堆到文件,format指定输出格式,live指明是活着的对象,file指定文件名

     

    -heap

    打印heap的概要信息,GC使用的算法,heap的配置及使用情况,可以用此来判断内存目前的使用情况以及垃圾回收情况.

     

    -finalizerinfo   

    打印等待回收的对象信息

     

    -histo

    打印堆的对象统计,包括对象数、内存大小等等。jmap -histo:live 这个命令执行,JVM会先触发gc,然后再统计信息

     

    jmap -histo:live 11808 | grep StringBuffer 查询类名包含StringBuffer的信息

    jmap -histo:live 11808 | grep StringBuffer > histo.txt 保存信息到histo.txt文件

     

     

     

  • 相关阅读:
    c# 导出text 文本文件
    c# 检查目录,当指定目录不存在时建立目录
    c# 控制台应用程序批量修改文件夹下的后缀名(包括子文件夹)
    oracleHelper 操作帮助类
    Sqlite操作帮助类
    oracle 备份数据库,导出数据库
    nehibernet .net注意事项
    一般处理程序多图片上传(可以更多)
    一般处理程序多图片上传(3个文件)
    我的Python分析成长之路4
  • 原文地址:https://www.cnblogs.com/kaleidoscope/p/9476212.html
Copyright © 2011-2022 走看看