• jmap


    最近在看<<Java程序员修炼之道>>,看到性能调优jmap部分,故整理记录。

    jmap

    用来显示Java进程的内存映射

    jmap主要有两个常用的选择:-heap和-histo

    选项:-heap(堆视图)

    使用-heap选项时,jmap会抓取进程当前的堆快照。在输出结果中能看到构成Java进程堆内存的基本构成(年轻代,老年代...),和它们的参数

     可以看到SurvivorRatio = 8,表示survivor区占用1/8的Eden内存,即一个survivor区占用1/10的新生代内存,但是我们可以看到上面的截图并不满足,这是为什么呢?这是因为-XX:SurvivorRatito这个参数会被忽略当开启了-XX:+UseAdaptiveSizePolicy,因为当启用该参数,又是并行垃圾处理时,jvm会动态调整年轻代大小和相应的Survivor去比例。

    选项:-histo(柱状视图)

    柱状视图显示了系统中每个类型的实例(包括内部实体)占用的内存量。各个类型按使用内存多少排列。

    还有一个-histo:live选项:这个选项告诉jmap只处理存活对象,而不是整个堆(jmap默认会处理所有对象,也包括还没被收集的垃圾)

    其他选项:

       -dump : 创建导出文件,该文件可以用来做离线分析。

    -dump:<dump-options> to dump java heap in hprof binary format
    dump-options:
    live dump only live objects; if not specified all objects in the heap are dumped.
    format=b binary format
    file=<file> dump heap to <file>
    

      eg: jmap -dump:live, format=b, file=heap.hprof 3356

     没有选项 :这可以用来查看连接到进程里的本地类库

    eg:可以看到连接了很多本地类库 .

    参考:<<Java程序员修炼之道>>

  • 相关阅读:
    MQTT简单demo(java)
    MQTT协议开发心得
    浏览器播放RTSP格式视频流的解决方法
    JSON学习
    Redis安装和java代码实现增删改查
    创建一个简单的SpringMVC框架
    oracle创建只读权限的用户简单四步走(创建用户/赋连接权限/赋表权限/创建同义词)
    html读取图片
    ORACLE多表关联UPDATE 语句
    Oracle 闪回查询
  • 原文地址:https://www.cnblogs.com/pigzhu/p/3414176.html
Copyright © 2020-2023  润新知