• 内存监控工具:jmap命令


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

    •jmap [pid]

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

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

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

    jmap -dump:live,format=b,file=xxx.xxx [pid] 则可以将当前Java进程的内存占用情况导出来,方便用专门的内存分析工具(例如:MAT)来分析。

    查看当前Java进程创建的活跃对象数目和占用内存大小:
    jmap -histo:live 18162 >test.log
    
    
    将当前Java进程的内存占用情况导出来,方便用专门的内存分析工具(例如:MAT)来分析:
    jmap -dump:live,format=b,file=heapt18162.bin 18162

    利用Eclipse Memory Analyzer Tool(MAT)打开heapt18162.bin文件:

    下载地址:https://eclipse.org/mat/downloads.php

     

    更多文章:https://www.javatang.com/archives/2017/10/30/53562102.html

    https://blog.csdn.net/a1510841693/article/details/104770912

    https://blog.csdn.net/lkp1603645756/article/details/82792117?locationNum=9&fps=1


    jmap(Memory Map for Java)命令用于生成堆转储快照(一般称为heapdump或dump文件)。
    如果不使用jmap命令,要想获取Java堆转储快照,还有一些比较“暴力”的手段:如-XX:+HeapDumpOnOutOfMemoryError参数,可以让虚拟机在OOM异常出现之后自动生成dump文件,通过-XX:+HeapDumpOnCtrlBreak参数则可以使用[Ctrl]+[Break]键让虚拟机生成dump文件,又或者在Linux系统下通过Kill -3命令发送进程退出信号“吓唬”一下虚拟机,也能拿到dump文件。
    jmap的作用并不仅仅是为了获取dump文件,它还可以查询finalize执行队列、Java堆和永久代的详细信息,如空间使用率、当前用的是哪种收集器等。
    jmap有不少功能在Windows平台下都是受限的,除了生成dump文件的-dump选项和用于查看每个类的实例、空间占用统计的-histo选项在所有操作系统都提供之外,其余选项都只能在Linux/Solaris下使用。
     
    jmap命令格式:
    jmap [ option ] vmid

    option选项的合法值与具体含义见表4-4。

    表4-4 jmap工具主要选项
    jmap -dump:format=b,file=heapt13817.bin 13817

    文章来源:深入理解Java虚拟机:JVM高级特性与最佳实践(第2版)4.2.4 jmap:Java内存映像工具


  • 相关阅读:
    opendressinghash //use resize array
    ChainingHash
    Hash function
    stack && queue
    random_select
    counting sort
    master theorem
    各排序算法及其比较
    视图中添加主键的方法
    oracle表空间的扩展
  • 原文地址:https://www.cnblogs.com/ooo0/p/15666637.html
Copyright © 2020-2023  润新知