jmap -histo pid 输出的[C [B [I [S methodKlass的含义

简介:

jmap -histo pid 输出结果样式

 num     #instances         #bytes  class name
----------------------------------------------
   1:       1169837      131659368  [C
   2:         25945       38337824  [I
   3:         31548       29407968  [B
   4:       1164546       27949104  java.lang.String
   6:         91313       12829072  <constMethodKlass>
   7:         12395       12404880  [S
   8:         91313       11700288  <methodKlass>
   9:          7525        9303112  <constantPoolKlass>
  10:          7525        5606808  <instanceKlassKlass>
  11:          6043        5028288  <constantPoolCacheKlass>
  12:         10048        2007888  [Ljava.lang.Object;
  14:          3507        1707048  <methodDataKlass>
  15:          8132         980616  java.lang.Class
  16:         26854         859328  java.util.HashMap$Entry
  17:         12368         699296  [[I
  18:         14135         452320  java.util.concurrent.ConcurrentHashMap$HashEntry
  19:         20883         334128  java.lang.Object
  20:           590         316240  <objArrayKlassKlass>
  21:          1757         305904  [Ljava.util.HashMap$Entry;
  22:          2809         224720  net.sf.ehcache.Element
  23:          1992         223104  java.net.SocksSocketImpl
  24:          2668         213440  java.lang.reflect.Method
  26:          5932         183928  [Ljava.lang.String;
  27:          7588         182112  java.util.concurrent.ConcurrentSkipListMap$Node
  28:          7317         175608  java.lang.Long
  29:          5303         169696  java.util.Hashtable$Entry
  30:          6778         162672  java.util.ArrayList
  31:          3931         157240  java.lang.ref.SoftReference
  32:          2972         118880  java.util.LinkedHashMap$Entry
  33:          1565         112680  org.apache.commons.pool2.impl.DefaultPooledObject
  34:          2817         112680  net.sf.ehcache.store.chm.SelectableConcurrentHashMap$HashEntry
  35:          2243         107664  java.util.HashMap
  36:          2592         103680  java.util.TreeMap$Entry
  37:          3214         102848  java.lang.ref.WeakReference
  38:          1565         100160  redis.clients.jedis.Client
  39:          4155          99720  java.util.LinkedList$Node
  40:          1986          95328  java.net.SocketInputStream
  41:           414          92952  [Ljava.util.concurrent.ConcurrentHashMap$HashEntry;
  42:          2275          91000  java.lang.ref.Finalizer
  43:          1161          83592  java.lang.reflect.Constructor
  44:           757          78728  java.io.ObjectStreamClass
  45:          1587          76176  java.net.SocketOutputStream
  46:          1189          66584  java.beans.MethodDescriptor
  47:          2770          66480  org.apache.commons.pool2.impl.LinkedBlockingDeque$Node
  48:           388          66368  [Ljava.util.Hashtable$Entry;
  49:          1989          63648  java.net.Socket
  50:           749          53928  java.lang.reflect.Field
  ...
  ...
2947:             1             16  sun.misc.Launcher
2948:             1             16  org.codehaus.jackson.map.ser.std.DateSerializer
2949:             1             16  org.apache.phoenix.schema.types.PDataType$2
2950:             1             16  org.springframework.data.redis.connection.convert.StringToRedisClientInfoConverter
Total       3090439      316004152

输出结果说明

[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区。

其中最后一行(total行)

分别记录了实例总数、程序占用总内存数,本例显示的程序总占用内存约300M

目录
相关文章
java minio 8.x 通过https连接minio
java minio 8.x 通过https连接minio
1811 0
|
8月前
|
SQL 运维 关系型数据库
MySQL Binlog 日志查看方法及查看内容解析
本文介绍了 MySQL 的 Binlog(二进制日志)功能及其使用方法。Binlog 记录了数据库的所有数据变更操作,如 INSERT、UPDATE 和 DELETE,对数据恢复、主从复制和审计至关重要。文章详细说明了如何开启 Binlog 功能、查看当前日志文件及内容,并解析了常见的事件类型,包括 Format_desc、Query、Table_map、Write_rows、Update_rows 和 Delete_rows 等,帮助用户掌握数据库变化历史,提升维护和排障能力。
|
数据采集 前端开发 数据安全/隐私保护
使用 urllib.parse 模块优雅地处理 URL
使用 urllib.parse 模块优雅地处理 URL
267 9
|
Java
【Java】已解决java.nio.channels.ClosedChannelException异常
【Java】已解决java.nio.channels.ClosedChannelException异常
1423 1
|
SQL druid Java
解决 ‘The last packet successfully received from the server was xxx milliseconds ago‘ 问题
解决 ‘The last packet successfully received from the server was xxx milliseconds ago‘ 问题
7241 0
|
SQL 缓存 数据可视化
如何设计一个低代码平台?
如何设计一个低代码平台?
1083 0
|
XML Java 数据库连接
idea 从mapper方法直接点进xml文件的解决方法
idea 从mapper方法直接点进xml文件的解决方法
1357 2
|
监控 算法 Java
JVM 调优之 glibc 引发的内存泄露
Pmap 提供了进程的内存映射,pmap 命令用于显示一个或多个进程的内存状态。其报告进程的地址空间和内存状态信息
JVM 调优之 glibc 引发的内存泄露
|
存储 监控 安全
深度剖析Linux进程的内部机制:一探/proc/pid的奥秘
深度剖析Linux进程的内部机制:一探/proc/pid的奥秘
2602 0
|
SQL 关系型数据库 MySQL
当并发insert on duplicate key update遇见死锁:更新丢失
数据库死锁问题,是一个老生常谈且很常见的问题,网上也有非常多对于各类死锁场景的解析和复现,但凡和死锁有关,无外乎不涉及数据库隔离等级、索引、以及innodb锁等相关原因。但是我这个案例我搜遍了全网也没能找到比较相似情况。于是我想尽可能的复现出这种情况,找出死锁的原因,找出可能出现的隐患。问题的背景:我们的数据库中的发生死锁的表是具有”多列组合构建的唯一索引“(不包含
20971 4