`

jmap 输出记录

 
阅读更多
版权声明
转自
http://blog.csdn.net/lxb_champagne/article/details/18352945

JMAP 输出

jmap -histo 24527 | head -30 
 
num     #instances         #bytes  class name 
---------------------------------------------- 
   1:         31939       98883072  [C 
   2:          8594        9461992  [B 
   3:         30326        4256232  <constMethodKlass> 
   4:         30326        3892592  <methodKlass> 
   5:          2719        3226344  <constantPoolKlass> 
   6:          2450        1948704  <constantPoolCacheKlass> 
   7:          2719        1869200  <instanceKlassKlass> 
   8:         27599         662376  java.lang.String 
   9:           836         442968  <methodDataKlass> 
  10:          8215         394320  org.apache.tomcat.util.buf.ByteChunk 
  11:          3012         366720  java.lang.Class 
  12:         11257         360224  java.util.HashMap$Entry 
  13:          3417         273360  java.lang.reflect.Method 
  14:          6763         270520  java.util.TreeMap$Entry 
  15:          4326         260720  [S 
  16:          5410         259680  org.apache.tomcat.util.buf.MessageBytes 
  17:          6410         256400  org.apache.tomcat.util.buf.CharChunk 
  18:          4558         238352  [[I 
  19:          3347         211512  [Ljava.lang.Object; 
  20:          2144         189280  [I 
  21:           276         147936  <objArrayKlassKlass> 
  22:           948         142216  [Ljava.util.HashMap$Entry; 
  23:          2874         137952  java.util.HashMap 
  24:           621          89424  java.text.DecimalFormat 
  25:          2555          81760  java.util.concurrent.ConcurrentHashMap$HashEntry 
  26:           620          69440  java.util.GregorianCalendar 
  27:          1052          68936  [Ljava.lang.String; 

其中:
[C is a char[]
[S is a short[]
[I is a int[]
[B is a byte[]
[[I is a int[][]



上面的输出中[C对象占用Heap这么多,往往跟String有关,String其内部使用final char[]数组来保存数据的。



constMethodKlass/ methodKlass/ constantPoolKlass/ constantPoolCacheKlass/ instanceKlassKlass/ methodDataKlass

与Classloader相关,常驻与Perm区。
分享到:
评论

相关推荐

    tomcat输出输出着就不输出了,什么原因?解决方法是

    检查`jmap`或JVisualVM等工具的内存使用情况,优化`-Xms`和`-Xmx`设置,以避免频繁的GC。 3. **线程池配置**:Tomcat使用线程池来处理请求。如果线程池配置不当,比如最大线程数限制过小,当达到上限时,新的请求将...

    Troubleshooting Guide for Java

    例如,在Windows上可以使用DbgView来捕获应用程序的日志输出。 #### 十三、自定义诊断工具 针对特定场景,开发者可能需要编写自定义的诊断工具来更好地满足调试需求。这通常涉及到编写脚本或小工具来收集特定的信息...

    线上问题排查工具和手段

    此外,ss命令是另一种可以用来检查网络连接和socket信息的工具,它的输出结果与netstat相似,但在某些情况下更为高效。 针对Java应用服务器,排查问题时常用的工具还包括jps、jstack、jmap和jstat等。jps命令可以列...

    Summary:工作总结记录

    在实际工作中,我学会了使用JDK自带的JVisualVM、jstack和jmap等工具进行性能分析和问题定位,同时也了解了Java内存模型和垃圾回收机制,以此优化应用性能。 通过这份工作总结记录,我不仅回顾了自己的学习历程,也...

    JavaDump分析

    在传统的Bug分析手段中,虽然控制台输出和代码阅读也能提供一些帮助,但它们往往信息量不足,无法详细反映程序运行的全貌,特别是在涉及到多线程并发和内存管理问题时。JavaDump的出现,正是为了解决这些问题,它能...

    java内存管理 ppt

    `jstat`和`jmap`是两款强大的JVM监控工具,前者用于实时监控JVM的内存、垃圾收集和类加载状态,后者可以输出堆内存的详细信息,包括对象分配和存活情况。 了解并掌握Java内存管理有助于优化应用程序性能,避免内存...

    线上故障定位分析全套方案

    `jstack`能够输出Java应用中所有线程的当前堆栈跟踪,帮助我们找出可能导致CPU过载的代码段。在分析结果中,查找执行时间较长或者状态异常的线程,如"等待锁"、"运行"或"BLOCKED"状态的线程,这些都可能是问题的源头...

    2020 兴业银行Java笔试题

    1. 输入一个正整数,计算并输出距离它最近的对称数 对称数是指从左向右读和从右向左读都一样的数字,例如121、1221等。要找到一个数n的最近对称数,可以考虑将n转换为字符串,然后反转字符串,比较两者差异,取较小...

    linux服务器应用卡死性能问题排查

    找出CPU占用率高的线程后,记录下其线程ID。线程ID是定位问题的关键,因为进程内部的线程可能有多个,每个线程都有自己的执行路径。 接下来,使用`jstack`命令对目标进程进行线程堆栈跟踪。`jstack`是Java提供的一...

    深入解读Java12&13;新特性.zip

    Java 13允许事件流直接输出到标准输出或网络,方便进行实时监控和故障排查。 4. **Default CDS Archives (JEP 353)**: 默认的类数据共享(CDS)归档文件简化了应用启动时的类加载过程,提升了启动速度。Java 13将...

    JVM crash 错误日志分析

    2. **`jmap`工具**:可以输出堆内存的详细信息,包括对象分布、内存区域大小等,辅助分析内存泄漏。 3. **`jhat`或`VisualVM`**:这些是更强大的内存分析工具,可以对`hprof`文件进行可视化分析,找出内存占用高的...

    java2应用命令详解

    12. **java飞行记录仪(jfr)** 和 **jmc(Java Mission Control)** Oracle JDK 提供的高级诊断和监控工具,用于捕获和分析性能数据。 以上就是 Java 2 应用命令的基本介绍,熟练掌握这些命令对于 Java 开发者来说至...

    Java虚拟机JVM优化实战的过程全记录

    - `-XX:+PrintTenuringDistribution -XX:+PrintGCApplicationStoppedTime`: 输出年龄分布和应用停止时间,用于分析GC行为。 在优化过程中,`jcmd`用于查看JVM的详细信息,`jinfo`可以获取JVM的配置参数,`ps`命令则...

    涉及进程和内存等的工具和说明文档

    监控进程和内存的工具有很多种,例如`sysstat`套件包含的`sar`能够记录和报告系统活动,包括进程创建速率和内存使用趋势。`iftop`显示网络带宽使用,同时也能反映出进程对网络资源的消耗。`memcached`或`redis`这类...

    JDK12-java-se-monitoring-and-management-guide.pdf

    这涉及到使用JDK自带的工具如`jstat`、`jmap`、`jhat`和`jfr`(Java飞行记录器)等。 4. **垃圾回收**:垃圾回收是Java性能管理的重要方面,指南提供了关于不同垃圾收集器的详细信息,如G1、Shenandoah、ZGC等,...

    JVM相关的常见面试问题汇总.pdf

    - **日志记录**: - `-verbose:gc`: 输出垃圾回收的日志。 - `-XX:+PrintGCDetails`: 输出更详细的GC信息。 - **其他参数**: - `-XX:+HeapDumpOnOutOfMemoryError`: 当内存溢出时生成堆转储文件。 - `-XX:Heap...

    分析tomcat占用cpu高的原因

    6. **日志打印过多**:过于频繁的日志输出也可能消耗大量CPU资源,尤其是当使用同步日志记录器时。考虑调整日志级别或采用异步日志框架。 7. **代码效率低**:低效的算法或不恰当的数据结构使用,如过多的同步块,...

Global site tag (gtag.js) - Google Analytics