jmap -histo PID日志分析

基础jmap -histo PID日志分析

  • 待补充
  • java version - jdk1.8

其中需要关注的几个类对象

  • [C is a char[] — 跟jdk 1.8 String相关
    (final) char[]-jdk8 -> byte[]-jdk9
  • [S is a short[]
  • [I is a int[]
  • [B is a byte[]
  • [I is a int[]
  • java.lang.Class — Class类对象
  • com.sun.proxy.$Proxy0 — Proxy.newProxyInstance(ClassLoader loader, Class<?>[] interfaces, InvocationHandler h) 动态生成代理类
  • [C也会直接展示为char[]
  • [Ljava.lang.String表示String数组对象,也会直接展示为java.lang.String[]
  • 当程序在运行过程中遇到new关键字创建一个数组时,由JVM直接创建数组类,再由类加载器创建数组中的元素类。
    普通类的加载由类加载器完成。既可以使用系统提供的类加载器,也可以使用用户自定义的类加载器。
  • java.lang.Class对象的存放JVM规范并没有给出限制,不同的虚拟机根据自己的需求存放这个对象。HotSpot将Class对象存放在方法区?

相关文档:
基础总结(非常全面的Java知识点总结)
Spring基础总结–主要参考Spring in action的总结blog
类加载的过程

 num     #instances         #bytes  class name
----------------------------------------------
   1:           479       15288424  [I
   2:          2281         228936  [C
   3:           302          83640  [B
   4:           521          59432  java.lang.Class
   5:          1758          42192  java.lang.String
   6:           591          30616  [Ljava.lang.Object;
   7:           341          10912  java.util.HashMap$Node
   8:           388           9312  java.util.LinkedList$Node
   9:           115           8280  java.lang.reflect.Field
  10:            26           7456  [Ljava.util.HashMap$Node;
  11:           195           6240  java.util.LinkedList
  12:           205           4920  java.lang.StringBuilder
  13:           258           4128  java.lang.Integer
  14:           102           4080  java.lang.ref.SoftReference
  15:           156           3744  sun.misc.ProxyGenerator$ConstantPool$IndirectEntry
  16:           114           3648  java.util.Hashtable$Entry
  17:             8           3008  java.lang.Thread
  18:            90           2880  java.util.concurrent.ConcurrentHashMap$Node
  19:            75           2568  [Ljava.lang.String;
  20:            70           2240  java.io.File
  21:            32           2048  java.net.URL
  22:            38           1824  sun.util.locale.LocaleObjectCache$CacheEntry
  23:            12           1760  [Ljava.util.Hashtable$Entry;
  24:            20           1760  java.lang.reflect.Method
  25:            27           1712  [S
  26:           104           1664  java.lang.Short
  27:            68           1280  [Ljava.lang.Class;
  28:            16           1280  java.lang.reflect.Constructor
  29:            74           1184  java.lang.Object
  30:            24           1152  java.util.HashMap
  31:            20           1120  java.lang.Class$ReflectionData
  32:             2           1064  [Ljava.lang.invoke.MethodHandle;
  33:            10           1056  [Ljava.util.concurrent.ConcurrentHashMap$Node;
  34:             1           1040  [Ljava.lang.Integer;
  35:            26           1040  java.io.ObjectStreamField
  36:            51            816  sun.misc.ProxyGenerator$ConstantPool$ValueEntry
  37:            20            800  sun.util.locale.BaseLocale$Key
  38:            19            760  java.util.LinkedHashMap$Entry
  39:            21            672  java.util.ArrayList$Itr
  40:            16            640  java.lang.ref.Finalizer
  41:            11            616  sun.misc.URLClassPath$JarLoader
  42:            19            608  java.util.Locale
  43:            19            608  sun.util.locale.BaseLocale
  44:            24            576  java.util.ArrayList
  45:             9            576  java.util.concurrent.ConcurrentHashMap
  46:             9            560  [Ljava.lang.reflect.Field;
  47:            23            552  java.net.Parts
  48:            23            552  sun.security.action.GetPropertyAction
  49:            15            536  [Ljava.lang.reflect.Method;
  50:            12            480  java.security.AccessControlContext
  51:            20            480  java.util.Locale$LocaleKey
  52:            19            456  java.io.ExpiringCache$Entry
  53:            18            432  java.lang.StringBuffer
  54:             5            400  [Ljava.util.WeakHashMap$Entry;
  55:             1            384  java.lang.ref.Finalizer$FinalizerThread
  56:             6            384  java.nio.DirectByteBuffer
  57:             1            376  java.lang.ref.Reference$ReferenceHandler
  58:             6            336  java.nio.DirectLongBufferU
  59:            14            336  sun.misc.ProxyGenerator$ExceptionTableEntry
  60:            10            320  java.lang.OutOfMemoryError
  61:            10            320  java.lang.ref.ReferenceQueue
  62:            10            288  [Ljava.io.ObjectStreamField;
  63:             9            288  java.io.FileDescriptor
  64:             6            288  java.nio.HeapCharBuffer
  65:             6            288  sun.misc.ProxyGenerator$MethodInfo
  66:            12            288  sun.misc.URLClassPath$3
  67:             7            280  java.util.WeakHashMap$Entry
  68:             5            280  sun.nio.cs.UTF_8$Encoder
  69:             8            256  java.io.DataOutputStream
  70:             8            256  java.util.Vector
  71:             8            256  sun.misc.ProxyGenerator$PrimitiveTypeInfo
  72:            10            240  java.lang.Class$MethodArray
  73:             5            240  java.util.WeakHashMap
  74:             9            216  sun.misc.MetaIndex
  75:             5            200  sun.nio.cs.UTF_8$Decoder
  76:             8            192  [Ljava.lang.reflect.Constructor;
  77:             6            192  java.io.FileInputStream
  78:            12            192  java.lang.ref.ReferenceQueue$Lock
  79:             8            192  java.net.URLClassLoader$1
  80:             4            192  java.nio.HeapByteBuffer
  81:             6            192  java.security.CodeSource
  82:             4            192  java.util.Hashtable
  83:             2            192  java.util.jar.JarFile$JarFileEntry
  84:             8            192  sun.reflect.NativeConstructorAccessorImpl
  85:             7            168  java.io.ByteArrayOutputStream
  86:             7            168  java.lang.Class$1
  87:             4            160  java.lang.ClassNotFoundException
  88:             2            160  java.util.zip.ZipEntry
  89:             4            160  sun.misc.ProxyGenerator$ProxyMethod
  90:             6            144  sun.misc.PerfCounter
  91:             2            128  java.io.ExpiringCache$1
  92:             2            128  java.util.jar.JarFile
  93:             4            128  sun.misc.ProxyGenerator$FieldInfo
  94:             4            128  sun.misc.URLClassPath$FileLoader$1
  95:             8            128  sun.reflect.DelegatingConstructorAccessorImpl
  96:             3            120  java.security.ProtectionDomain
  97:             3            120  java.util.HashMap$ValueIterator
  98:             2            112  java.util.zip.ZipFile$ZipFileInputStream
  99:             1            104  sun.net.www.protocol.file.FileURLConnection
 100:             2             96  java.io.BufferedReader
 101:             3             96  java.io.FileOutputStream
 102:             2             96  java.lang.ThreadGroup
 103:             6             96  java.util.HashSet
 104:             2             96  java.util.Properties
 105:             3             96  java.util.Stack
 106:             2             96  java.util.StringTokenizer
 107:             4             96  java.util.concurrent.atomic.AtomicLong
 108:             1             96  sun.misc.Launcher$AppClassLoader
 109:             2             96  sun.misc.URLClassPath
 110:             2             96  sun.nio.cs.StreamDecoder
 111:             2             96  sun.nio.cs.StreamEncoder
 112:             4             96  sun.usagetracker.UsageTrackerClient$1
 113:             2             88  [Ljava.net.URL;
 114:             1             88  sun.misc.Launcher$ExtClassLoader
 115:             1             80  [Ljava.lang.ThreadLocal$ThreadLocalMap$Entry;
 116:             2             80  java.io.BufferedWriter
 117:             2             80  java.io.ExpiringCache
 118:             5             80  java.io.FileInputStream$1
 119:             5             80  java.lang.Class$3
 120:             3             72  java.lang.RuntimePermission
 121:             3             72  java.util.Collections$SynchronizedSet
 122:             3             72  sun.misc.Signal
 123:             2             64  [J
 124:             2             64  [Ljava.lang.Thread;
 125:             2             64  java.io.FilePermission
 126:             2             64  java.io.PrintStream
 127:             2             64  java.lang.ClassValue$Entry
 128:             2             64  java.lang.NoSuchMethodError
 129:             2             64  java.lang.ThreadLocal$ThreadLocalMap$Entry
 130:             2             64  java.lang.VirtualMachineError
 131:             2             64  java.lang.ref.ReferenceQueue$Null
 132:             2             64  java.util.concurrent.ConcurrentHashMap$ForwardingNode
 133:             2             64  java.util.zip.ZipCoder
 134:             1             56  java.util.zip.ZipFile$ZipFileInflaterInputStream
 135:             2             48  [Ljava.io.File;
 136:             3             48  [Ljava.security.Principal;
 137:             2             48  java.io.BufferedOutputStream
 138:             2             48  java.io.File$PathStatus
 139:             2             48  java.io.OutputStreamWriter
 140:             3             48  java.lang.ThreadLocal
 141:             2             48  java.nio.charset.CoderResult
 142:             3             48  java.nio.charset.CodingErrorAction
 143:             3             48  java.security.ProtectionDomain$Key
 144:             2             48  java.util.ArrayDeque
 145:             1             48  java.util.Hashtable$Enumerator
 146:             1             48  java.util.zip.Inflater
 147:             2             48  sun.misc.FileURLMapper
 148:             2             48  sun.misc.NativeSignalHandler
 149:             1             48  sun.misc.ProxyGenerator
 150:             3             48  sun.reflect.ReflectionFactory$GetReflectionFactoryAction
 151:             1             40  java.io.BufferedInputStream
 152:             1             40  java.lang.ClassLoader$NativeLibrary
 153:             1             40  java.util.IdentityHashMap
 154:             1             40  sun.nio.cs.StandardCharsets$Aliases
 155:             1             40  sun.nio.cs.StandardCharsets$Cache
 156:             1             40  sun.nio.cs.StandardCharsets$Classes
 157:             1             32  [Ljava.lang.OutOfMemoryError;
 158:             2             32  [Ljava.lang.StackTraceElement;
 159:             1             32  [Ljava.lang.ThreadGroup;
 160:             2             32  java.io.FilePermission$1
 161:             1             32  java.io.UnixFileSystem
 162:             1             32  java.lang.ArithmeticException
 163:             2             32  java.lang.Boolean
 164:             1             32  java.lang.NullPointerException
 165:             1             32  java.lang.StringCoding$StringDecoder
 166:             1             32  java.lang.StringCoding$StringEncoder
 167:             1             32  java.lang.reflect.Proxy$Key1
 168:             1             32  java.lang.reflect.WeakCache
 169:             1             32  java.lang.reflect.WeakCache$CacheKey
 170:             1             32  java.lang.reflect.WeakCache$CacheValue
 171:             1             32  java.lang.reflect.WeakCache$Factory
 172:             2             32  java.nio.ByteOrder
 173:             1             32  java.security.BasicPermissionCollection
 174:             1             32  java.security.Permissions
 175:             2             32  java.util.concurrent.atomic.AtomicInteger
 176:             1             32  java.util.concurrent.atomic.AtomicReferenceFieldUpdater$AtomicReferenceFieldUpdaterImpl
 177:             2             32  sun.misc.URLClassPath$JarLoader$1
 178:             2             32  sun.net.www.protocol.jar.Handler
 179:             1             32  sun.nio.cs.StandardCharsets
 180:             2             32  sun.reflect.ReflectionFactory$1
 181:             2             32  sun.usagetracker.UsageTrackerClient$3
 182:             1             24  [Ljava.io.File$PathStatus;
 183:             1             24  [Ljava.lang.ClassValue$Entry;
 184:             1             24  [Lsun.launcher.LauncherHelper;
 185:             1             24  java.io.FilePermissionCollection
 186:             1             24  java.io.FileReader
 187:             1             24  java.io.InputStreamReader
 188:             1             24  java.lang.ClassValue$Version
 189:             1             24  java.lang.ThreadLocal$ThreadLocalMap
 190:             1             24  java.lang.invoke.MethodHandleImpl$4
 191:             1             24  java.lang.reflect.ReflectPermission
 192:             1             24  java.util.BitSet
 193:             1             24  java.util.Collections$EmptyMap
 194:             1             24  java.util.Collections$SetFromMap
 195:             1             24  java.util.Collections$UnmodifiableRandomAccessList
 196:             1             24  java.util.Locale$Cache
 197:             1             24  java.util.concurrent.atomic.AtomicReferenceFieldUpdater$AtomicReferenceFieldUpdaterImpl$1
 198:             1             24  java.util.zip.ZStreamRef
 199:             1             24  sun.launcher.LauncherHelper
 200:             1             24  sun.misc.JarIndex
 201:             1             24  sun.misc.Launcher$AppClassLoader$1
 202:             1             24  sun.misc.ProxyGenerator$ConstantPool
 203:             1             24  sun.misc.URLClassPath$FileLoader
 204:             1             24  sun.net.www.MessageHeader
 205:             1             24  sun.nio.cs.ISO_8859_1
 206:             1             24  sun.nio.cs.US_ASCII
 207:             1             24  sun.nio.cs.UTF_16
 208:             1             24  sun.nio.cs.UTF_16BE
 209:             1             24  sun.nio.cs.UTF_16LE
 210:             1             24  sun.nio.cs.UTF_8
 211:             1             24  sun.usagetracker.UsageTrackerClient$4
 212:             1             24  sun.util.locale.BaseLocale$Cache
 213:             1             16  [D
 214:             1             16  [F
 215:             1             16  [Ljava.lang.Throwable;
 216:             1             16  [Ljava.security.cert.Certificate;
 217:             1             16  [Z
 218:             1             16  DynamicProxy
 219:             1             16  Singer
 220:             1             16  com.sun.proxy.$Proxy0
 221:             1             16  java.io.FileDescriptor$1
 222:             1             16  java.io.FileOutputStream$1
 223:             1             16  java.lang.CharacterDataLatin1
 224:             1             16  java.lang.ClassLoader$3
 225:             1             16  java.lang.ClassValue$Identity
 226:             1             16  java.lang.Compiler$1
 227:             1             16  java.lang.Runtime
 228:             1             16  java.lang.String$CaseInsensitiveComparator
 229:             1             16  java.lang.System$2
 230:             1             16  java.lang.SystemClassLoaderAction
 231:             1             16  java.lang.Terminator$1
 232:             1             16  java.lang.invoke.MemberName$Factory
 233:             1             16  java.lang.invoke.MethodHandleImpl$1
 234:             1             16  java.lang.invoke.MethodHandleImpl$2
 235:             1             16  java.lang.invoke.MethodHandleImpl$3
 236:             1             16  java.lang.invoke.MethodHandleStatics$1
 237:             1             16  java.lang.ref.Reference$1
 238:             1             16  java.lang.ref.Reference$Lock
 239:             1             16  java.lang.reflect.Proxy$KeyFactory
 240:             1             16  java.lang.reflect.Proxy$ProxyClassFactory
 241:             1             16  java.lang.reflect.ReflectAccess
 242:             1             16  java.net.URLClassLoader$7
 243:             1             16  java.nio.Bits$1
 244:             1             16  java.nio.charset.CoderResult$1
 245:             1             16  java.nio.charset.CoderResult$2
 246:             1             16  java.security.ProtectionDomain$2
 247:             1             16  java.security.ProtectionDomain$JavaSecurityAccessImpl
 248:             1             16  java.util.Collections$EmptyList
 249:             1             16  java.util.Collections$EmptySet
 250:             1             16  java.util.HashMap$Values
 251:             1             16  java.util.Hashtable$EntrySet
 252:             1             16  java.util.WeakHashMap$KeySet
 253:             1             16  java.util.concurrent.atomic.AtomicBoolean
 254:             1             16  java.util.jar.JavaUtilJarAccessImpl
 255:             1             16  java.util.zip.ZipFile$1
 256:             1             16  sun.misc.Launcher
 257:             1             16  sun.misc.Launcher$ExtClassLoader$1
 258:             1             16  sun.misc.Launcher$Factory
 259:             1             16  sun.misc.Perf
 260:             1             16  sun.misc.Perf$GetPerfAction
 261:             1             16  sun.misc.Unsafe
 262:             1             16  sun.net.www.protocol.file.Handler
 263:             1             16  sun.reflect.ReflectionFactory
 264:             1             16  sun.security.action.GetBooleanAction
 265:             1             16  sun.usagetracker.UsageTrackerClient
Total          9418       15854864
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值