Skip to content

Instantly share code, notes, and snippets.

@rednaxelafx
Created November 23, 2011 06:50
Show Gist options
  • Star 2 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save rednaxelafx/1388046 to your computer and use it in GitHub Desktop.
Save rednaxelafx/1388046 to your computer and use it in GitHub Desktop.
Get heap histogram from within a Java program itself
import java.lang.management.*
import com.sun.tools.attach.*
def getOwnPid() {
name = ManagementFactory.runtimeMXBean.name
name[0..<name.indexOf('@')]
}
def heapHisto(vmid) {
vm = VirtualMachine.attach(vmid)
histo = vm.heapHisto().text
vm.detach()
histo
}
heapHisto(getOwnPid())
$ groovysh
Groovy Shell (1.7.7, JVM: 1.6.0_25)
Type 'help' or '\h' for help.
----------------------------------------------------------------------------------------------------------------------------
groovy:000> import java.lang.management.*
===> [import java.lang.management.*]
groovy:000> def getOwnPid() {
groovy:001> name = ManagementFactory.runtimeMXBean.name
groovy:002> name[0..<name.indexOf('@')]
groovy:003> }
===> true
groovy:000> import com.sun.tools.attach.*
===> [import java.lang.management.*, import com.sun.tools.attach.*]
groovy:000> def heapHisto(vmid) {
groovy:001> vm = VirtualMachine.attach(vmid)
groovy:002> histo = vm.heapHisto().text
groovy:003> vm.detach()
groovy:004> histo
groovy:005> }
===> true
groovy:000> heapHisto(getOwnPid())
===>
num #instances #bytes class name
----------------------------------------------
1: 27801 4416088 <constMethodKlass>
2: 27801 3787864 <methodKlass>
3: 2219 2451552 <constantPoolKlass>
4: 2219 1914560 <instanceKlassKlass>
5: 19299 1698312 java.lang.reflect.Method
6: 1902 1514016 <constantPoolCacheKlass>
7: 12885 1040760 [C
8: 16335 914760 org.codehaus.groovy.runtime.metaclass.MetaMethodIndex$Entry
9: 2575 524864 [B
10: 3071 469656 [S
11: 13174 421568 java.lang.String
12: 12976 391528 [Ljava.lang.Object;
13: 16794 370920 [Ljava.lang.Class;
14: 3729 343656 [I
15: 10136 324352 java.util.HashMap$Entry
16: 5682 318192 org.codehaus.groovy.reflection.CachedMethod
17: 2414 293648 java.lang.Class
18: 8643 276576 java.lang.ref.WeakReference
19: 1607 253168 [Lorg.codehaus.groovy.util.ComplexKeyHashMap$Entry;
20: 7896 252672 org.codehaus.groovy.util.SingleKeyHashMap$Entry
21: 6020 240800 java.lang.ref.SoftReference
22: 430 212800 <methodDataKlass>
23: 3782 211792 java.beans.MethodDescriptor
24: 2860 205920 java.lang.reflect.Field
25: 121 205608 [J
26: 3228 192600 [[I
27: 1406 162464 [Ljava.util.HashMap$Entry;
28: 6501 156024 org.codehaus.groovy.util.FastArray
29: 151 138352 [Lorg.codehaus.groovy.runtime.metaclass.MetaMethodIndex$Entry;
30: 4405 105720 java.util.ArrayList
31: 2184 104832 org.codehaus.groovy.util.ReferenceType$SoftRef
32: 178 103952 <objArrayKlassKlass>
33: 700 102352 [Ljava.lang.reflect.Method;
34: 4458 97640 [Lorg.codehaus.groovy.reflection.CachedClass;
35: 3917 89200 [Ljava.lang.String;
36: 2512 80384 groovy.lang.MetaBeanProperty
37: 1080 77760 java.lang.reflect.Constructor
38: 1381 66288 java.util.HashMap
39: 888 49728 org.codehaus.groovy.reflection.GeneratedMetaMethod$Proxy
40: 1794 43056 org.codehaus.groovy.util.ManagedReference
41: 1396 33504 org.codehaus.groovy.reflection.CachedField
42: 414 31776 [Lorg.codehaus.groovy.reflection.CachedMethod;
43: 1305 31320 org.codehaus.groovy.util.SingleKeyHashMap
44: 779 31160 org.codehaus.groovy.util.ListHashMap
45: 390 28080 org.codehaus.groovy.reflection.ClassInfo
46: 134 26800 [Ljava.beans.MethodDescriptor;
47: 821 26272 org.codehaus.groovy.runtime.callsite.AbstractCallSite
48: 360 25920 java.beans.PropertyDescriptor
49: 311 22392 org.codehaus.groovy.reflection.CachedClass
50: 131 18864 org.codehaus.groovy.ast.ClassNode
51: 390 18720 org.codehaus.groovy.reflection.ClassInfo$LazyCachedClassRef
52: 390 18720 org.codehaus.groovy.reflection.ClassInfo$LazyClassLoaderRef
53: 389 18672 org.codehaus.groovy.reflection.CachedClass$1
54: 389 18672 org.codehaus.groovy.reflection.CachedClass$2
55: 389 18672 org.codehaus.groovy.reflection.CachedClass$3
56: 389 18672 org.codehaus.groovy.reflection.CachedClass$4
57: 389 18672 org.codehaus.groovy.reflection.CachedClass$5
58: 389 18672 org.codehaus.groovy.reflection.CachedClass$6
59: 389 18672 org.codehaus.groovy.reflection.CachedClass$7
60: 389 18672 org.codehaus.groovy.reflection.CachedClass$8
61: 468 14976 org.codehaus.groovy.runtime.metaclass.MetaMethodIndex$Header
62: 342 13680 java.util.WeakHashMap$Entry
63: 152 13376 org.codehaus.groovy.ast.MethodNode
64: 543 13352 [Ljava.lang.reflect.Constructor;
65: 113 12656 groovy.lang.MetaClassImpl
66: 390 12480 org.codehaus.groovy.util.LockableObject
67: 702 11232 java.util.HashSet
68: 606 9696 java.lang.Integer
69: 301 9632 groovy.lang.MetaClassImpl$MethodIndex
70: 249 9256 [Lgroovy.lang.MetaMethod;
71: 280 8960 java.util.concurrent.ConcurrentHashMap$HashEntry
72: 172 8928 [Ljava.lang.reflect.Field;
73: 268 8576 org.codehaus.groovy.reflection.CachedConstructor
74: 166 8544 [Lorg.codehaus.groovy.reflection.CachedField;
75: 107 7696 [Ljava.util.Hashtable$Entry;
76: 137 7672 org.codehaus.groovy.ast.expr.ConstantExpression
77: 302 7248 java.lang.Long
78: 112 7168 org.codehaus.groovy.ast.Parameter
79: 223 7136 java.util.Hashtable$Entry
80: 220 7040 java.util.Vector
81: 174 6960 org.codehaus.groovy.ast.VariableScope
82: 83 6576 [Lorg.codehaus.groovy.runtime.callsite.CallSite;
83: 134 6432 java.beans.BeanDescriptor
84: 400 6400 java.util.HashMap$KeySet
85: 142 5680 java.util.TreeMap$Entry
86: 134 5496 [Ljava.beans.PropertyDescriptor;
87: 134 5360 java.beans.GenericBeanInfo
88: 79 5056 java.net.URL
89: 102 4896 java.util.Hashtable
90: 122 4880 org.codehaus.groovy.ast.stmt.ReturnStatement
91: 38 4864 org.codehaus.groovy.runtime.metaclass.ClosureMetaClass
92: 151 4832 org.codehaus.groovy.runtime.metaclass.MetaMethodIndex
93: 200 4800 sun.reflect.NativeConstructorAccessorImpl
94: 200 4800 org.codehaus.groovy.runtime.metaclass.MetaMethodIndex$CacheEntry
95: 199 4776 sun.reflect.generics.tree.SimpleClassTypeSignature
96: 8 4672 <typeArrayKlassKlass>
97: 276 4416 java.util.concurrent.atomic.AtomicInteger
98: 150 3944 [Lorg.codehaus.groovy.reflection.CachedConstructor;
99: 161 3864 sun.reflect.NativeMethodAccessorImpl
100: 96 3840 java.math.BigInteger
101: 151 3624 groovy.lang.MetaArrayLengthProperty
102: 87 3480 java.lang.ref.Finalizer
103: 199 3304 [Lsun.reflect.generics.tree.TypeArgument;
104: 205 3280 sun.reflect.DelegatingConstructorAccessorImpl
105: 64 3272 [Ljava.util.concurrent.ConcurrentHashMap$HashEntry;
106: 40 3200 org.codehaus.groovy.reflection.stdclasses.CachedClosureClass
107: 196 3136 sun.reflect.DelegatingMethodAccessorImpl
108: 130 3120 java.util.jar.Attributes$Name
109: 65 3120 org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite$PojoCachedMethodSiteNoUnwrapNoCoerce
110: 193 3088 java.lang.Object
111: 55 3080 java.lang.Package
112: 46 2944 org.codehaus.groovy.runtime.callsite.CallSiteClassLoader
113: 90 2880 org.codehaus.groovy.classgen.MethodCaller
114: 6 2848 [Ljava.util.WeakHashMap$Entry;
115: 145 2784 [Lorg.codehaus.groovy.ast.ClassNode;
116: 57 2736 org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite$PogoCachedMethodSiteNoUnwrapNoCoerce
117: 113 2712 java.util.LinkedList$Entry
118: 55 2640 org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite$PojoMetaMethodSiteNoUnwrapNoCoerce
119: 64 2560 java.util.concurrent.ConcurrentHashMap$Segment
120: 52 2496 org.codehaus.groovy.runtime.callsite.ConstructorSite$ConstructorSiteNoUnwrapNoCoerce
121: 61 2440 java.util.LinkedHashMap$Entry
122: 40 2240 sun.reflect.DelegatingClassLoader
123: 31 2232 org.codehaus.groovy.ast.FieldNode
124: 11 2112 <klassKlass>
125: 131 2096 org.codehaus.groovy.ast.ClassNode$MapOfLists
126: 129 2064 java.lang.Character
127: 64 2048 java.util.concurrent.locks.ReentrantLock$NonfairSync
128: 84 2024 [Lorg.codehaus.groovy.ast.Parameter;
129: 83 1992 org.codehaus.groovy.runtime.callsite.CallSiteArray
130: 116 1856 antlr.collections.impl.BitSet
131: 23 1840 java.util.jar.JarFile$JarFileEntry
132: 8 1792 [Z
133: 33 1584 org.codehaus.groovy.runtime.callsite.StaticMetaMethodSite$StaticMetaMethodSiteNoUnwrapNoCoerce
134: 32 1536 java.util.TreeMap
135: 47 1504 org.codehaus.groovy.runtime.callsite.PogoGetPropertySite
136: 31 1488 org.codehaus.groovy.antlr.GroovySourceAST
137: 26 1456 org.codehaus.groovy.ast.GenericsType
138: 58 1392 java.util.regex.Pattern$6
139: 19 1368 org.codehaus.groovy.reflection.stdclasses.ArrayCachedClass
140: 55 1320 groovy.lang.MetaClassImpl$GetBeanMethodMetaProperty
141: 23 1288 java.util.LinkedHashMap
142: 23 1288 java.util.jar.JarFile
143: 40 1280 org.fusesource.jansi.AnsiRenderer$Code
144: 32 1280 sun.misc.URLClassPath$JarLoader
145: 1 1256 [Lsun.misc.FDBigInt;
146: 30 1200 java.math.BigDecimal
147: 29 1160 org.codehaus.groovy.runtime.callsite.GetEffectivePogoPropertySite
148: 36 1152 java.util.zip.Inflater
149: 27 1080 org.codehaus.groovy.runtime.callsite.GetEffectivePojoPropertySite
150: 12 1056 org.codehaus.groovy.ast.ConstructorNode
151: 44 1056 java.util.LinkedList
152: 1 1040 [Ljava.lang.Integer;
153: 1 1040 [Ljava.lang.Long;
154: 64 1024 sun.reflect.generics.tree.ClassTypeSignature
155: 8 896 java.lang.Thread
156: 36 864 java.io.File
157: 18 864 org.codehaus.groovy.runtime.callsite.ClassMetaClassGetPropertySite
158: 54 864 [Ljava.security.cert.Certificate;
159: 36 864 java.util.zip.ZStreamRef
160: 16 768 org.codehaus.groovy.reflection.ClassInfo$ClassInfoSet$Segment
161: 24 768 java.security.AccessControlContext
162: 19 760 java.io.ObjectStreamField
163: 46 736 java.lang.Short
164: 17 680 org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite$PogoMetaMethodSiteNoUnwrapNoCoerce
165: 28 672 org.codehaus.groovy.runtime.metaclass.ClosureMetaClass$StandardClosureChooser
166: 21 664 [Ljline.Completor;
167: 20 640 org.codehaus.groovy.runtime.callsite.PogoMetaClassSite
168: 10 640 org.codehaus.groovy.ast.expr.VariableExpression
169: 26 624 java.lang.ProcessEnvironment$Variable
170: 26 624 java.lang.ProcessEnvironment$Value
171: 19 608 java.util.PropertyPermission
172: 19 608 java.util.Locale
173: 19 608 sun.reflect.generics.repository.ClassRepository
174: 25 600 org.codehaus.groovy.tools.shell.util.SimpleCompletor
175: 25 600 [Lorg.codehaus.groovy.ast.GenericsType;
176: 15 600 java.security.ProtectionDomain
177: 18 576 org.fusesource.jansi.Ansi$Attribute
178: 17 552 [Lorg.codehaus.groovy.classgen.MethodCaller;
179: 17 544 java.security.CodeSource
180: 22 528 org.codehaus.groovy.tools.shell.util.MessageSource
181: 1 528 [Ljava.lang.Character;
182: 11 528 java.nio.HeapByteBuffer
183: 6 528 java.beans.IndexedPropertyDescriptor
184: 6 528 java.util.prefs.FileSystemPreferences
185: 1 528 [Ljava.util.TimerTask;
186: 5 520 groovy.lang.GroovyClassLoader$InnerLoader
187: 16 512 java.security.Permissions
188: 9 504 sun.nio.cs.StreamEncoder
189: 9 504 java.util.ResourceBundle$CacheKey
190: 30 480 java.util.TreeSet
191: 10 480 sun.nio.cs.UTF_8$Encoder
192: 10 480 org.apache.commons.cli.Option
193: 20 480 jline.ArgumentCompletor$WhitespaceArgumentDelimiter
194: 20 480 java.io.FileDescriptor
195: 19 456 sun.reflect.generics.tree.ClassSignature
196: 19 456 sun.reflect.generics.scope.ClassScope
197: 19 456 jline.ArgumentCompletor
198: 19 456 sun.reflect.generics.factory.CoreReflectionFactory
199: 28 448 org.codehaus.groovy.tools.shell.util.Logger
200: 19 448 [Lsun.reflect.generics.tree.ClassTypeSignature;
201: 4 440 [Ljava.math.BigInteger;
202: 9 432 org.codehaus.groovy.ast.stmt.BlockStatement
203: 9 432 java.util.ResourceBundle$BundleReference
204: 18 432 java.util.regex.Pattern$2
205: 13 416 java.io.FilePermission
206: 13 416 java.io.FileInputStream
207: 17 408 org.codehaus.groovy.classgen.MethodCallerMultiAdapter
208: 10 400 org.codehaus.groovy.runtime.metaclass.NewStaticMetaMethod
209: 10 400 org.codehaus.groovy.runtime.callsite.GetEffectivePojoFieldSite
210: 12 384 sun.reflect.UnsafeQualifiedObjectFieldAccessorImpl
211: 8 384 java.io.BufferedWriter
212: 8 384 org.codehaus.groovy.runtime.MethodClosure
213: 12 384 java.lang.ref.ReferenceQueue
214: 5 360 org.codehaus.groovy.ast.expr.MethodCallExpression
215: 9 360 org.codehaus.groovy.runtime.metaclass.NewInstanceMetaMethod
216: 19 352 [Lsun.reflect.generics.tree.FormalTypeParameter;
217: 11 352 java.util.Stack
218: 19 352 [Ljava.lang.reflect.TypeVariable;
219: 2 352 [Lorg.fusesource.jansi.AnsiRenderer$Code;
220: 6 336 org.codehaus.groovy.ast.expr.ArgumentListExpression
221: 14 336 java.io.FilePermissionCollection
222: 5 320 java.util.logging.Logger
223: 4 320 [Ljava.util.concurrent.ConcurrentHashMap$Segment;
224: 10 320 sun.misc.URLClassPath
225: 3 312 [D
226: 13 312 java.lang.RuntimePermission
227: 12 296 [Ljava.security.ProtectionDomain;
228: 6 288 java.util.WeakHashMap
229: 12 288 java.util.logging.LogManager$LogNode
230: 9 288 org.objectweb.asm.Type
231: 18 288 jline.NullCompletor
232: 9 288 org.fusesource.jansi.Ansi$Color
233: 9 288 java.util.ResourceBundle$LoaderReference
234: 11 272 [Ljava.io.ObjectStreamField;
235: 11 264 sun.misc.MetaIndex
236: 11 264 sun.jvmstat.perfdata.monitor.v2_0.TypeCode
237: 11 264 java.util.Arrays$ArrayList
238: 4 256 java.util.regex.Pattern
239: 8 256 java.util.regex.Pattern$Curly
240: 8 256 java.lang.OutOfMemoryError
241: 8 256 sun.misc.ProxyGenerator$PrimitiveTypeInfo
242: 8 256 java.io.OutputStreamWriter
243: 15 240 java.security.ProtectionDomain$Key
244: 15 240 [Ljava.security.Principal;
245: 10 240 sun.reflect.annotation.AnnotationInvocationHandler
246: 5 240 java.util.Properties
247: 6 240 org.codehaus.groovy.ast.stmt.ExpressionStatement
248: 3 240 [Ljava.lang.ThreadLocal$ThreadLocalMap$Entry;
249: 10 240 java.awt.AWTPermission
250: 5 240 org.codehaus.groovy.runtime.dgmimpl.arrays.ObjectArrayGetAtMetaMethod$MyPojoMetaMethodSite
251: 5 240 org.codehaus.groovy.tools.shell.ComplexCommandSupport$_closure1
252: 10 232 [Ljava.lang.reflect.Type;
253: 7 224 <compiledICHolderKlass>
254: 7 224 java.io.FileOutputStream
255: 7 224 java.lang.ThreadLocal$ThreadLocalMap$Entry
256: 7 224 sun.reflect.generics.reflectiveObjects.TypeVariableImpl
257: 14 224 java.lang.ref.ReferenceQueue$Lock
258: 9 216 org.codehaus.groovy.control.CompilePhase
259: 3 216 sun.net.www.protocol.jar.URLJarFile
260: 7 216 [Ljava.lang.Boolean;
261: 9 216 java.util.logging.Level
262: 4 192 org.codehaus.groovy.runtime.callsite.ConstructorSite
263: 4 192 java.util.concurrent.ConcurrentHashMap
264: 8 192 java.lang.annotation.ElementType
265: 3 192 org.codehaus.groovy.ast.expr.GStringExpression
266: 3 192 org.codehaus.groovy.ast.expr.BinaryExpression
267: 3 192 org.codehaus.groovy.tools.shell.CommandAlias
268: 6 192 org.codehaus.groovy.transform.ASTTransformationVisitor
269: 3 192 java.util.regex.Matcher
270: 8 192 sun.misc.FDBigInt
271: 8 192 java.util.jar.Manifest
272: 8 184 [Lsun.reflect.generics.tree.FieldTypeSignature;
273: 11 176 java.util.HashMap$EntrySet
274: 11 176 java.util.HashMap$Values
275: 3 168 [Lorg.codehaus.groovy.control.CompilePhase;
276: 7 168 org.codehaus.groovy.runtime.metaclass.ClosureMetaClass$3
277: 7 168 sun.reflect.generics.tree.FormalTypeParameter
278: 7 168 java.util.regex.Pattern$GroupHead
279: 5 168 [Ljava.lang.annotation.ElementType;
280: 7 168 groovy.lang.Binding
281: 7 168 java.net.NetPermission
282: 7 168 java.util.regex.Pattern$GroupTail
283: 7 168 sun.management.counter.Units
284: 5 160 java.util.Collections$SynchronizedMap
285: 2 160 org.codehaus.groovy.reflection.stdclasses.IntegerCachedClass
286: 2 160 org.codehaus.groovy.reflection.stdclasses.DoubleCachedClass
287: 2 160 org.codehaus.groovy.reflection.stdclasses.LongCachedClass
288: 2 160 org.codehaus.groovy.reflection.stdclasses.FloatCachedClass
289: 2 160 org.codehaus.groovy.reflection.stdclasses.BooleanCachedClass
290: 2 160 org.codehaus.groovy.reflection.stdclasses.CharacterCachedClass
291: 5 160 org.codehaus.groovy.syntax.Token
292: 2 144 [Ljava.math.BigDecimal;
293: 6 144 java.io.ExpiringCache$Entry
294: 3 144 org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite$PogoCachedMethodSite
295: 3 144 java.io.PrintWriter
296: 1 136 org.codehaus.groovy.control.CompilationUnit
297: 2 128 org.codehaus.groovy.ast.ImportNode
298: 8 128 java.util.jar.Attributes
299: 2 128 java.nio.DirectByteBuffer
300: 4 128 sun.reflect.annotation.AnnotationType
301: 4 128 java.io.PrintStream
302: 4 128 java.lang.ClassLoader$NativeLibrary
303: 2 128 org.codehaus.groovy.ast.expr.AttributeExpression
304: 5 120 java.util.regex.Pattern$BitClass
305: 1 120 jline.UnixTerminal$1
306: 1 120 java.util.logging.LogManager$Cleaner
307: 5 120 java.util.regex.Pattern$Single
308: 1 120 java.util.TimerThread
309: 5 120 groovysh_evaluate
310: 3 120 sun.nio.cs.UTF_8$Decoder
311: 3 120 java.util.PropertyResourceBundle
312: 1 120 java.util.prefs.FileSystemPreferences$5$1
313: 1 112 java.util.prefs.AbstractPreferences$EventDispatchThread
314: 2 112 org.codehaus.groovy.ast.expr.FieldExpression
315: 2 112 [Ljava.util.LinkedList;
316: 2 112 java.io.ExpiringCache$1
317: 1 112 java.lang.ref.Reference$ReferenceHandler
318: 1 112 java.lang.ref.Finalizer$FinalizerThread
319: 6 104 [Ljava.util.prefs.PreferenceChangeListener;
320: 6 96 [Ljava.util.prefs.NodeChangeListener;
321: 2 96 sun.misc.SoftCache$ValueCell
322: 2 96 org.codehaus.groovy.runtime.dgmimpl.NumberNumberMinus$IntegerInteger
323: 3 96 java.util.regex.Pattern$Branch
324: 4 96 org.codehaus.groovy.util.ReferenceBundle
325: 2 96 sun.nio.cs.StreamDecoder
326: 2 96 org.codehaus.groovy.classgen.Variable
327: 2 96 org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite$PojoCachedMethodSite
328: 6 96 java.lang.ThreadLocal
329: 1 96 groovy.lang.GroovyClassLoader
330: 6 96 groovy.lang.GroovyClassLoader$1
331: 6 96 org.codehaus.groovy.transform.ASTTransformationVisitor$2
332: 4 96 org.codehaus.groovy.ast.DynamicVariable
333: 2 96 org.codehaus.groovy.ast.expr.ClassExpression
334: 4 96 sun.management.counter.Variability
335: 2 96 java.net.SocketPermission
336: 2 96 java.lang.ThreadGroup
337: 1 96 org.codehaus.groovy.tools.shell.commands.RecordCommand
338: 2 96 org.fusesource.jansi.AnsiRenderWriter
339: 1 88 org.codehaus.groovy.ast.ModuleNode
340: 1 88 org.codehaus.groovy.tools.shell.commands.PurgeCommand
341: 1 88 org.codehaus.groovy.tools.shell.commands.ShowCommand
342: 1 88 [Lorg.fusesource.jansi.Ansi$Attribute;
343: 1 88 org.codehaus.groovy.tools.shell.commands.HistoryCommand
344: 1 88 org.codehaus.groovy.tools.shell.commands.ShadowCommand
345: 1 88 org.codehaus.groovy.runtime.typehandling.NumberMathModificationInfo
346: 1 80 [Lorg.codehaus.groovy.util.AbstractConcurrentMapBase$Segment;
347: 1 80 [[I
348: 2 80 org.codehaus.groovy.runtime.callsite.PojoMetaClassSite
349: 1 80 org.codehaus.groovy.reflection.stdclasses.BigDecimalCachedClass
350: 2 80 org.codehaus.groovy.util.ReferenceManager$2
351: 1 80 org.codehaus.groovy.tools.RootLoader
352: 1 80 org.codehaus.groovy.reflection.stdclasses.ShortCachedClass
353: 2 80 java.io.ExpiringCache
354: 1 80 org.codehaus.groovy.reflection.stdclasses.ByteCachedClass
355: 2 80 org.codehaus.groovy.runtime.callsite.GetEffectivePogoFieldSite
356: 1 80 java.net.URI
357: 2 80 java.util.IdentityHashMap
358: 2 80 [Ljava.lang.Thread;
359: 2 80 org.codehaus.groovy.classgen.BytecodeSequence
360: 1 80 sun.misc.Launcher$ExtClassLoader
361: 5 80 sun.reflect.BootstrapConstructorAccessorImpl
362: 3 72 sun.reflect.UnsafeObjectFieldAccessorImpl
363: 3 72 java.lang.annotation.RetentionPolicy
364: 3 72 groovy.lang.Reference
365: 1 72 org.codehaus.groovy.reflection.stdclasses.ObjectCachedClass
366: 1 72 jline.ConsoleReader
367: 1 72 org.codehaus.groovy.reflection.stdclasses.StringCachedClass
368: 1 72 org.codehaus.groovy.reflection.stdclasses.NumberCachedClass
369: 1 72 org.codehaus.groovy.control.CompilerConfiguration
370: 3 72 [Ljava.util.regex.Pattern$Node;
371: 3 72 sun.misc.Signal
372: 3 72 org.codehaus.groovy.tools.shell.ParseCode
373: 1 72 org.codehaus.groovy.reflection.stdclasses.BigIntegerCachedClass
374: 1 72 org.codehaus.groovy.tools.shell.Groovysh
375: 3 72 java.lang.ThreadLocal$ThreadLocalMap
376: 1 72 sun.misc.Launcher$AppClassLoader
377: 3 72 java.security.SecurityPermission
378: 1 72 java.util.logging.LogManager$RootLogger
379: 3 72 java.util.Collections$UnmodifiableRandomAccessList
380: 3 72 sun.reflect.UnsafeIntegerFieldAccessorImpl
381: 3 72 sun.security.provider.PolicyFile$PolicyEntry
382: 1 72 groovy.grape.GrabAnnotationTransformation
383: 4 64 org.codehaus.groovy.tools.shell.IO$Verbosity
384: 1 64 [F
385: 2 64 org.codehaus.groovy.util.ManagedLinkedList$Element
386: 2 64 [Ljava.lang.annotation.RetentionPolicy;
387: 2 64 java.security.BasicPermissionCollection
388: 2 64 org.codehaus.groovy.util.ReferenceType$WeakRef
389: 2 64 java.lang.VirtualMachineError
390: 1 64 [Lsun.jvmstat.perfdata.monitor.v2_0.TypeCode;
391: 2 64 org.codehaus.groovy.runtime.wrappers.PojoWrapper
392: 1 64 org.codehaus.groovy.reflection.SunClassLoader
393: 2 64 org.codehaus.groovy.tools.shell.commands.HelpCommandCompletor
394: 4 64 sun.net.www.protocol.jar.Handler
395: 2 64 java.net.Inet4Address
396: 4 64 java.lang.Boolean
397: 1 64 org.codehaus.groovy.tools.shell.commands.InspectCommand
398: 2 64 sun.reflect.UnsafeQualifiedStaticObjectFieldAccessorImpl
399: 2 64 java.lang.ref.ReferenceQueue$Null
400: 1 56 org.codehaus.groovy.ast.expr.SpreadExpression
401: 1 56 org.codehaus.groovy.control.ResolveVisitor
402: 1 56 org.codehaus.groovy.control.SourceUnit
403: 1 56 org.codehaus.groovy.ast.expr.TupleExpression
404: 1 56 org.codehaus.groovy.tools.shell.util.HelpFormatter
405: 1 56 org.codehaus.groovy.tools.shell.commands.EditCommand
406: 1 56 org.codehaus.groovy.tools.shell.commands.SetCommand
407: 1 56 org.codehaus.groovy.tools.shell.commands.SaveCommand
408: 1 56 sun.jvmstat.perfdata.monitor.protocol.local.LocalVmManager
409: 1 56 org.codehaus.groovy.tools.shell.commands.DisplayCommand
410: 1 56 org.codehaus.groovy.tools.shell.commands.ExitCommand
411: 1 56 org.codehaus.groovy.tools.shell.Main$_main_closure2
412: 1 56 sun.awt.AppContext
413: 1 56 [Ljava.lang.Runnable;
414: 1 56 groovy.util.CliBuilder
415: 1 56 [Lorg.fusesource.jansi.Ansi$Color;
416: 1 56 org.codehaus.groovy.tools.shell.commands.RegisterCommand
417: 1 56 org.codehaus.groovy.tools.shell.commands.LoadCommand
418: 1 56 org.codehaus.groovy.tools.shell.commands.AliasCommand
419: 1 56 org.codehaus.groovy.tools.shell.commands.ClearCommand
420: 1 56 org.codehaus.groovy.tools.shell.commands.HelpCommand
421: 1 56 org.codehaus.groovy.tools.shell.commands.ImportCommand
422: 2 48 javax.security.auth.AuthPermission
423: 1 48 org.codehaus.groovy.runtime.dgm$185
424: 1 48 org.codehaus.groovy.runtime.dgm$13
425: 2 48 [Ljava.util.ResourceBundle;
426: 1 48 org.codehaus.groovy.runtime.dgm$332
427: 1 48 org.codehaus.groovy.runtime.dgm$567
428: 1 48 org.codehaus.groovy.tools.shell.commands.ShadowCommand$_closure1
429: 1 48 org.codehaus.groovy.tools.shell.commands.ShowCommand$_closure2
430: 2 48 java.net.InetAddress$CacheEntry
431: 1 48 org.codehaus.groovy.runtime.dgm$57
432: 2 48 java.lang.StringBuffer
433: 1 48 org.codehaus.groovy.runtime.dgm$333
434: 1 48 org.codehaus.groovy.runtime.dgm$236
435: 1 48 org.codehaus.groovy.tools.shell.commands.HistoryCommand$_closure1
436: 1 48 org.codehaus.groovy.tools.shell.commands.RecordCommand$_closure1
437: 1 48 org.codehaus.groovy.runtime.dgm$237
438: 1 48 org.codehaus.groovy.tools.shell.commands.ShadowCommand$_closure2
439: 1 48 org.codehaus.groovy.runtime.dgm$431
440: 1 48 org.codehaus.groovy.tools.shell.commands.ShowCommand$_closure3
441: 1 48 org.codehaus.groovy.runtime.dgm$238
442: 1 48 org.codehaus.groovy.runtime.dgm$406
443: 1 48 org.codehaus.groovy.runtime.dgm$432
444: 1 48 org.codehaus.groovy.control.StaticImportVisitor
445: 1 48 org.codehaus.groovy.runtime.dgm$239
446: 3 48 java.util.regex.Pattern$BranchConn
447: 1 48 org.codehaus.groovy.tools.shell.commands.HistoryCommand$_closure2
448: 1 48 org.codehaus.groovy.runtime.dgm$240
449: 1 48 org.codehaus.groovy.tools.shell.commands.ShadowCommand$_closure3
450: 1 48 org.codehaus.groovy.runtime.dgm$651
451: 1 48 org.codehaus.groovy.tools.shell.commands.RecordCommand$_closure2
452: 1 48 org.codehaus.groovy.runtime.dgm$502
453: 1 48 org.codehaus.groovy.runtime.dgm$231
454: 1 48 org.codehaus.groovy.tools.shell.commands.ShowCommand$_closure4
455: 3 48 com.sun.org.apache.xerces.internal.impl.dv.dtd.ListDatatypeValidator
456: 1 48 org.codehaus.groovy.runtime.dgm$323
457: 1 48 org.codehaus.groovy.tools.shell.InteractiveShellRunner
458: 1 48 org.codehaus.groovy.tools.shell.commands.HistoryCommand$_closure3
459: 1 48 org.codehaus.groovy.runtime.dgm$234
460: 1 48 org.codehaus.groovy.runtime.callsite.ConstructorSite$NoParamSite
461: 3 48 $Proxy0
462: 1 48 org.codehaus.groovy.tools.shell.commands.ShadowCommand$_closure4
463: 1 48 org.codehaus.groovy.tools.shell.Groovysh$_closure1
464: 2 48 java.nio.charset.CoderResult
465: 1 48 org.codehaus.groovy.tools.shell.commands.RecordCommand$_closure3
466: 1 48 org.codehaus.groovy.runtime.dgm$29
467: 1 48 org.codehaus.groovy.runtime.dgm$28
468: 1 48 org.codehaus.groovy.ast.expr.EmptyExpression
469: 1 48 org.codehaus.groovy.runtime.dgm$110
470: 3 48 java.text.AttributedCharacterIterator$Attribute
471: 2 48 sun.misc.NativeSignalHandler
472: 2 48 java.net.InetAddress$Cache
473: 1 48 org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite$PojoCachedMethodSiteNoUnwrap
474: 1 48 org.codehaus.groovy.tools.shell.commands.HistoryCommand$_closure4
475: 2 48 sun.misc.URLClassPath$FileLoader
476: 1 48 org.codehaus.groovy.tools.shell.commands.RecordCommand$_closure4
477: 1 48 org.codehaus.groovy.runtime.dgm$331
478: 1 48 org.codehaus.groovy.runtime.dgm$497
479: 2 48 java.net.InetAddress$Cache$Type
480: 2 48 java.io.InputStreamReader
481: 1 48 org.codehaus.groovy.runtime.dgm$347
482: 1 48 org.codehaus.groovy.runtime.dgm$683
483: 1 48 org.codehaus.groovy.runtime.dgm$564
484: 1 48 org.codehaus.groovy.runtime.dgm$496
485: 1 48 org.codehaus.groovy.antlr.AntlrParserPlugin
486: 1 48 org.codehaus.groovy.tools.shell.Groovysh$_closure2
487: 2 48 java.util.regex.Pattern$Slice
488: 1 48 org.codehaus.groovy.runtime.dgm$507
489: 1 48 org.codehaus.groovy.runtime.dgm$739
490: 3 48 $Proxy2
491: 1 48 org.codehaus.groovy.runtime.dgm$508
492: 1 48 org.codehaus.groovy.runtime.dgm$111
493: 2 48 org.codehaus.groovy.runtime.metaclass.ClosureMetaClass$6
494: 1 48 org.codehaus.groovy.runtime.dgm$742
495: 1 48 org.codehaus.groovy.runtime.dgm$509
496: 1 48 org.codehaus.groovy.runtime.dgm$33
497: 1 48 org.codehaus.groovy.runtime.dgm$472
498: 1 48 org.codehaus.groovy.runtime.dgm$510
499: 1 48 org.codehaus.groovy.runtime.dgm$473
500: 1 48 org.codehaus.groovy.runtime.dgm$511
501: 1 48 org.codehaus.groovy.runtime.dgm$512
502: 1 48 org.codehaus.groovy.tools.shell.commands.PurgeCommand$_closure1
503: 1 48 org.codehaus.groovy.runtime.dgm$266
504: 2 48 java.util.regex.Pattern$Dollar
505: 1 48 org.codehaus.groovy.runtime.dgm$513
506: 1 48 org.codehaus.groovy.runtime.dgm$267
507: 1 48 org.codehaus.groovy.runtime.dgm$279
508: 1 48 org.codehaus.groovy.runtime.dgm$268
509: 1 48 org.codehaus.groovy.runtime.dgm$233
510: 1 48 org.codehaus.groovy.runtime.dgm$32
511: 2 48 org.codehaus.groovy.util.ReferenceType$HardRef
512: 1 48 org.codehaus.groovy.runtime.dgm$269
513: 1 48 org.codehaus.groovy.tools.shell.commands.PurgeCommand$_closure2
514: 2 48 sun.awt.MostRecentKeyValue
515: 1 48 org.codehaus.groovy.runtime.dgm$280
516: 1 48 org.codehaus.groovy.runtime.dgm$357
517: 1 48 org.codehaus.groovy.runtime.callsite.StaticMetaMethodSite
518: 1 48 org.codehaus.groovy.runtime.dgm$270
519: 1 48 org.codehaus.groovy.runtime.dgm$281
520: 1 48 org.codehaus.groovy.runtime.dgm$470
521: 1 48 org.codehaus.groovy.runtime.dgm$282
522: 1 48 org.codehaus.groovy.runtime.dgm$8
523: 2 48 java.lang.management.ManagementPermission
524: 1 48 org.codehaus.groovy.tools.shell.commands.PurgeCommand$_closure3
525: 2 48 java.io.BufferedOutputStream
526: 1 48 [Lsun.management.counter.Units;
527: 1 48 org.codehaus.groovy.runtime.dgm$425
528: 2 48 [Ljava.net.InetAddress;
529: 1 48 org.codehaus.groovy.tools.shell.commands.PurgeCommand$_closure4
530: 1 48 org.codehaus.groovy.runtime.dgm$58
531: 1 48 org.codehaus.groovy.runtime.dgm$461
532: 1 48 org.codehaus.groovy.runtime.dgm$462
533: 1 48 org.codehaus.groovy.runtime.callsite.StaticMetaMethodSite$StaticMetaMethodSiteNoUnwrap
534: 1 48 org.codehaus.groovy.runtime.dgm$373
535: 1 48 org.codehaus.groovy.tools.shell.commands.ShowCommand$_closure1
536: 3 48 jline.FileNameCompletor
537: 3 48 java.nio.charset.CodingErrorAction
538: 1 48 org.codehaus.groovy.runtime.dgm$12
539: 1 40 org.codehaus.groovy.ast.CompileUnit
540: 1 40 java.util.logging.LogManager
541: 1 40 org.codehaus.groovy.runtime.metaclass.MetaClassRegistryImpl
542: 1 40 sun.jvmstat.perfdata.monitor.protocol.local.MonitoredHostProvider
543: 2 40 [Ljava.io.File;
544: 1 40 java.io.BufferedInputStream
545: 1 40 com.sun.xml.internal.stream.util.BufferAllocator
546: 1 40 java.util.ResourceBundle$1
547: 1 40 sun.nio.cs.StandardCharsets$Aliases
548: 1 40 org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite$PogoMetaMethodSiteNoUnwrap
549: 1 40 sun.nio.cs.StandardCharsets$Classes
550: 1 40 org.apache.commons.cli.PosixParser
551: 1 40 sun.nio.cs.StandardCharsets$Cache
552: 1 40 jline.UnixTerminal
553: 1 40 sun.misc.Cleaner
554: 1 40 sun.tools.attach.LinuxVirtualMachine
555: 1 40 org.codehaus.groovy.tools.shell.IO
556: 1 40 java.util.prefs.FileSystemPreferences$4
557: 1 40 java.util.EnumMap
558: 1 32 groovy.lang.GroovyShell
559: 1 32 java.lang.NullPointerException
560: 1 32 org.codehaus.groovy.runtime.dgmimpl.arrays.LongArrayGetAtMetaMethod
561: 1 32 java.lang.ArithmeticException
562: 1 32 org.codehaus.groovy.runtime.dgmimpl.arrays.LongArrayPutAtMetaMethod
563: 1 32 [Ljava.lang.OutOfMemoryError;
564: 1 32 org.codehaus.groovy.control.io.StringReaderSource
565: 1 32 org.codehaus.groovy.runtime.dgmimpl.arrays.FloatArrayGetAtMetaMethod
566: 1 32 java.util.AbstractList$Itr
567: 1 32 org.codehaus.groovy.runtime.dgmimpl.arrays.FloatArrayPutAtMetaMethod
568: 1 32 sun.management.VMManagementImpl
569: 1 32 org.codehaus.groovy.runtime.dgmimpl.arrays.DoubleArrayGetAtMetaMethod
570: 1 32 java.beans.PropertyChangeSupport
571: 1 32 org.codehaus.groovy.tools.shell.CommandRegistry
572: 1 32 org.codehaus.groovy.runtime.dgmimpl.NumberNumberPlus
573: 1 32 org.codehaus.groovy.runtime.dgmimpl.arrays.DoubleArrayPutAtMetaMethod
574: 1 32 sun.nio.cs.StandardCharsets
575: 1 32 java.lang.ref.Reference
576: 2 32 com.sun.org.apache.xerces.internal.impl.dv.dtd.ENTITYDatatypeValidator
577: 1 32 jline.UnixTerminal$ReplayPrefixOneCharInputStream
578: 1 32 org.codehaus.groovy.runtime.dgmimpl.NumberNumberMultiply
579: 1 32 org.codehaus.groovy.runtime.dgmimpl.NumberNumberMinus
580: 2 32 sun.reflect.generics.tree.TypeVariableSignature
581: 1 32 java.io.UnixFileSystem
582: 2 32 org.codehaus.groovy.util.ReferenceManager
583: 1 32 org.codehaus.groovy.runtime.dgmimpl.NumberNumberDiv
584: 1 32 sun.reflect.UnsafeStaticObjectFieldAccessorImpl
585: 1 32 jline.History
586: 1 32 org.codehaus.groovy.tools.shell.commands.ImportCommandCompletor
587: 1 32 java.util.concurrent.atomic.AtomicReferenceFieldUpdater$AtomicReferenceFieldUpdaterImpl
588: 2 32 $Proxy1
589: 2 32 org.codehaus.groovy.util.ReferenceManager$1
590: 1 32 org.codehaus.groovy.control.OptimizerVisitor
591: 1 32 java.io.FileWriter
592: 1 32 [Ljava.lang.ThreadGroup;
593: 1 32 org.codehaus.groovy.runtime.dgmimpl.arrays.ObjectArrayGetAtMetaMethod
594: 2 32 java.lang.Shutdown$Lock
595: 2 32 java.util.regex.Pattern$Begin
596: 1 32 org.apache.commons.cli.Options
597: 1 32 groovy.lang.MetaClassImpl$DummyMetaMethod
598: 1 32 org.codehaus.groovy.runtime.dgmimpl.arrays.ObjectArrayPutAtMetaMethod
599: 2 32 $Proxy3
600: 2 32 org.fusesource.jansi.AnsiConsole$1
601: 1 32 org.codehaus.groovy.runtime.dgmimpl.arrays.BooleanArrayGetAtMetaMethod
602: 1 32 org.codehaus.groovy.tools.shell.BufferManager
603: 1 32 groovy.lang.GroovyClassLoader$ClassCollector
604: 1 32 org.codehaus.groovy.runtime.dgmimpl.arrays.BooleanArrayPutAtMetaMethod
605: 2 32 org.codehaus.groovy.transform.powerassert.ValueRecorder
606: 1 32 org.codehaus.groovy.runtime.callsite.PojoMetaClassGetPropertySite
607: 1 32 sun.security.provider.PolicyFile$PolicyInfo
608: 1 32 sun.security.provider.PolicyFile
609: 1 32 org.codehaus.groovy.tools.shell.util.ClassNameCompletor
610: 1 32 org.codehaus.groovy.runtime.dgmimpl.arrays.ByteArrayGetAtMetaMethod
611: 2 32 org.codehaus.groovy.transform.ASTTransformationVisitor$3
612: 1 32 org.codehaus.groovy.tools.shell.commands.InspectCommandCompletor
613: 2 32 [Ljava.util.logging.Handler;
614: 1 32 org.codehaus.groovy.runtime.dgmimpl.arrays.ByteArrayPutAtMetaMethod
615: 1 32 [Lorg.codehaus.groovy.util.ReferenceType;
616: 2 32 [Ljava.lang.annotation.Annotation;
617: 1 32 org.codehaus.groovy.runtime.dgmimpl.arrays.CharacterArrayGetAtMetaMethod
618: 1 32 org.codehaus.groovy.runtime.dgmimpl.arrays.CharacterArrayPutAtMetaMethod
619: 1 32 org.codehaus.groovy.reflection.ClassInfo$ClassInfoSet
620: 1 32 java.util.Collections$UnmodifiableMap
621: 1 32 org.codehaus.groovy.tools.shell.CommandsMultiCompletor
622: 1 32 java.lang.RuntimeException
623: 1 32 org.codehaus.groovy.runtime.dgmimpl.arrays.ShortArrayGetAtMetaMethod
624: 1 32 sun.misc.SoftCache
625: 1 32 org.codehaus.groovy.runtime.dgmimpl.arrays.ShortArrayPutAtMetaMethod
626: 1 32 [Lsun.management.counter.Variability;
627: 1 32 org.codehaus.groovy.runtime.dgmimpl.arrays.IntegerArrayGetAtMetaMethod
628: 2 32 java.nio.ByteOrder
629: 1 32 java.util.regex.Pattern$BnM
630: 1 32 org.codehaus.groovy.runtime.dgmimpl.arrays.IntegerArrayPutAtMetaMethod
631: 1 24 java.util.Collections$EmptyMap
632: 1 24 java.util.Timer
633: 1 24 java.security.AllPermissionCollection
634: 1 24 java.util.PropertyPermissionCollection
635: 1 24 sun.nio.cs.UTF_8
636: 1 24 java.util.regex.Pattern$CharProperty$1
637: 1 24 java.lang.reflect.ReflectPermission
638: 1 24 org.codehaus.groovy.tools.shell.util.NoExitSecurityManager
639: 1 24 org.codehaus.groovy.classgen.Verifier$12
640: 1 24 org.codehaus.groovy.tools.shell.RigidParser
641: 1 24 sun.reflect.generics.reflectiveObjects.ParameterizedTypeImpl
642: 1 24 java.util.BitSet
643: 1 24 groovy.util.OptionAccessor
644: 1 24 org.codehaus.groovy.util.ManagedLinkedList
645: 1 24 sun.management.RuntimeImpl
646: 1 24 java.util.logging.LoggingPermission
647: 1 24 java.lang.StringCoding$StringEncoder
648: 1 24 org.codehaus.groovy.tools.shell.Parser
649: 1 24 [Ljava.net.InetAddress$Cache$Type;
650: 1 24 groovysh_evaluate
651: 1 24 org.codehaus.groovy.control.io.NullWriter
652: 1 24 org.codehaus.groovy.classgen.Verifier
653: 1 24 jline.CursorBuffer
654: 1 24 org.codehaus.groovy.runtime.metaclass.ClosureMetaClass$4
655: 1 24 org.codehaus.groovy.util.TripleKeyHashMap
656: 1 24 org.codehaus.groovy.control.ErrorCollector
657: 1 24 java.net.Inet6AddressImpl
658: 1 24 sun.misc.Perf$1
659: 1 24 java.util.regex.Pattern$Start
660: 1 24 org.codehaus.groovy.tools.LoaderConfiguration
661: 1 24 java.util.regex.Pattern$Ctype
662: 1 24 org.codehaus.groovy.util.ReferenceType$1
663: 1 24 org.codehaus.groovy.util.LazyReference$1
664: 1 24 com.sun.org.apache.xerces.internal.impl.Constants$ArrayEnumeration
665: 1 24 org.codehaus.groovy.util.ReferenceType$2
666: 1 24 org.codehaus.groovy.util.LazyReference$2
667: 1 24 org.codehaus.groovy.util.ReferenceType$3
668: 1 24 java.lang.StringCoding$StringDecoder
669: 1 24 org.codehaus.groovy.util.ReferenceType$4
670: 1 24 java.lang.ProcessEnvironment$StringEnvironment
671: 1 24 groovysh_evaluate
672: 1 24 org.codehaus.groovy.tools.GroovyClass
673: 1 24 java.util.Collections$SynchronizedRandomAccessList
674: 1 24 org.codehaus.groovy.tools.shell.ParseStatus
675: 1 24 java.security.Policy$UnsupportedEmptyCollection
676: 1 24 org.apache.commons.cli.CommandLine
677: 1 24 [Lsun.misc.JavaSecurityProtectionDomainAccess$ProtectionDomainCache;
678: 1 24 org.codehaus.groovy.tools.shell.Interpreter
679: 1 24 java.util.TaskQueue
680: 1 24 java.security.ProtectionDomain$2$1
681: 1 24 org.codehaus.groovy.runtime.GroovyCategorySupport$MyThreadLocal
682: 1 24 groovy.lang.GString$1
683: 1 24 org.codehaus.groovy.classgen.Verifier$2
684: 1 24 java.net.SocketPermissionCollection
685: 1 16 org.codehaus.groovy.runtime.metaclass.MetaClassRegistryImpl$1
686: 1 16 sun.reflect.GeneratedMethodAccessor8
687: 1 16 java.io.FileDescriptor$1
688: 1 16 java.util.prefs.FileSystemPreferencesFactory
689: 1 16 sun.reflect.generics.tree.BottomSignature
690: 1 16 org.codehaus.groovy.control.CompilationUnit$7
691: 1 16 com.sun.org.apache.xerces.internal.impl.dv.SecuritySupport
692: 1 16 sun.reflect.GeneratedMethodAccessor9
693: 1 16 java.lang.reflect.ReflectAccess
694: 1 16 java.util.Collections$ReverseComparator
695: 1 16 org.codehaus.groovy.control.CompilationUnit$8
696: 1 16 sun.reflect.GeneratedMethodAccessor18
697: 1 16 sun.reflect.GeneratedMethodAccessor2
698: 1 16 org.codehaus.groovy.control.CompilationUnit$9
699: 1 16 com.sun.beans.WeakCache
700: 1 16 java.math.BigDecimal$1
701: 1 16 com.sun.org.apache.xerces.internal.dom.SecuritySupport
702: 1 16 com.sun.org.apache.xerces.internal.parsers.SecuritySupport
703: 1 16 org.codehaus.groovy.control.CompilationUnit$10
704: 1 16 sun.misc.Perf
705: 1 16 org.codehaus.groovy.runtime.typehandling.IntegerMath
706: 1 16 sun.reflect.GeneratedMethodAccessor19
707: 1 16 org.codehaus.groovy.tools.shell.util.Preferences$1
708: 1 16 groovy.util.NodeList$1
709: 1 16 jline.CandidateListCompletionHandler
710: 1 16 java.security.ProtectionDomain$2
711: 1 16 org.codehaus.groovy.control.CompilationUnit$11
712: 1 16 sun.reflect.GeneratedMethodAccessor20
713: 1 16 com.sun.org.apache.xerces.internal.impl.dv.dtd.StringDatatypeValidator
714: 1 16 sun.jvmstat.monitor.HostIdentifier
715: 1 16 sun.net.www.protocol.jar.JarFileFactory
716: 1 16 com.sun.org.apache.xerces.internal.impl.dv.dtd.IDDatatypeValidator
717: 1 16 sun.reflect.GeneratedMethodAccessor35
718: 1 16 org.codehaus.groovy.control.CompilationUnit$12
719: 1 16 com.sun.org.apache.xerces.internal.impl.dv.dtd.IDREFDatatypeValidator
720: 1 16 org.codehaus.groovy.control.CompilationUnit$13
721: 1 16 java.util.regex.Pattern$Node
722: 1 16 sun.reflect.GeneratedConstructorAccessor2
723: 1 16 java.lang.Terminator$1
724: 1 16 java.util.regex.Pattern$5
725: 1 16 org.codehaus.groovy.control.CompilationUnit$1
726: 1 16 org.codehaus.groovy.antlr.AntlrParserPluginFactory
727: 1 16 sun.jkernel.DownloadManager$1
728: 1 16 org.codehaus.groovy.control.CompilationUnit$2
729: 1 16 java.util.regex.Pattern$LastNode
730: 1 16 com.sun.org.apache.xerces.internal.impl.dv.dtd.NOTATIONDatatypeValidator
731: 1 16 org.codehaus.groovy.control.CompilationUnit$3
732: 1 16 sun.reflect.GeneratedMethodAccessor1
733: 1 16 com.sun.org.apache.xerces.internal.impl.dv.dtd.NMTOKENDatatypeValidator
734: 1 16 org.codehaus.groovy.control.CompilationUnit$4
735: 1 16 sun.reflect.GeneratedMethodAccessor21
736: 1 16 java.text.MessageFormat$Field
737: 1 16 [Lorg.codehaus.groovy.ast.MixinNode;
738: 1 16 sun.misc.ASCIICaseInsensitiveComparator
739: 1 16 sun.reflect.GeneratedMethodAccessor22
740: 1 16 java.util.LinkedHashSet
741: 1 16 sun.net.www.protocol.file.Handler
742: 1 16 java.nio.charset.CoderResult$1
743: 1 16 sun.reflect.GeneratedMethodAccessor16
744: 1 16 java.lang.ApplicationShutdownHooks$1
745: 1 16 java.lang.String$CaseInsensitiveComparator
746: 1 16 java.nio.charset.CoderResult$2
747: 1 16 sun.misc.FloatingDecimal$1
748: 1 16 org.codehaus.groovy.reflection.CachedMethod$MyComparator
749: 1 16 sun.reflect.GeneratedMethodAccessor29
750: 1 16 sun.reflect.GeneratedMethodAccessor17
751: 1 16 [Ljava.beans.EventSetDescriptor;
752: 1 16 sun.reflect.GeneratedMethodAccessor3
753: 1 16 sun.reflect.GeneratedMethodAccessor23
754: 1 16 sun.reflect.GeneratedMethodAccessor25
755: 1 16 org.fusesource.jansi.Ansi$2
756: 1 16 org.codehaus.groovy.reflection.CachedClass$CachedMethodComparatorByName
757: 1 16 sun.reflect.GeneratedMethodAccessor30
758: 1 16 sun.reflect.GeneratedMethodAccessor4
759: 1 16 sun.reflect.GeneratedMethodAccessor31
760: 1 16 java.security.AccessControlContext$1
761: 1 16 javax.xml.parsers.SecuritySupport
762: 1 16 [Ljava.lang.StackTraceElement;
763: 1 16 sun.reflect.GeneratedMethodAccessor5
764: 1 16 sun.reflect.GeneratedMethodAccessor26
765: 1 16 java.util.ResourceBundle$Control
766: 1 16 sun.reflect.GeneratedMethodAccessor32
767: 1 16 sun.tools.attach.LinuxAttachProvider
768: 1 16 sun.reflect.GeneratedMethodAccessor10
769: 1 16 sun.misc.Launcher
770: 1 16 sun.reflect.GeneratedMethodAccessor27
771: 1 16 java.net.InetAddress$1
772: 1 16 sun.reflect.GeneratedConstructorAccessor3
773: 1 16 sun.reflect.GeneratedMethodAccessor33
774: 1 16 sun.reflect.GeneratedMethodAccessor6
775: 1 16 sun.reflect.ReflectionFactory
776: 1 16 sun.jvmstat.perfdata.monitor.protocol.local.LocalVmManager$1
777: 1 16 sun.reflect.GeneratedMethodAccessor34
778: 1 16 java.lang.System$2
779: 1 16 java.lang.ref.Reference$Lock
780: 1 16 sun.reflect.GeneratedMethodAccessor7
781: 1 16 sun.misc.Launcher$Factory
782: 1 16 java.util.concurrent.atomic.AtomicReference
783: 1 16 sun.jvmstat.perfdata.monitor.protocol.local.LocalVmManager$2
784: 1 16 sun.reflect.GeneratedMethodAccessor11
785: 1 16 org.codehaus.groovy.reflection.CachedClass$CachedMethodComparatorWithString
786: 1 16 sun.reflect.generics.tree.IntSignature
787: 1 16 sun.reflect.GeneratedMethodAccessor13
788: 1 16 sun.reflect.GeneratedConstructorAccessor4
789: 1 16 sun.jvmstat.perfdata.monitor.protocol.local.LocalVmManager$3
790: 1 16 sun.reflect.GeneratedMethodAccessor12
791: 1 16 sun.reflect.GeneratedMethodAccessor14
792: 1 16 java.util.Collections$EmptySet
793: 1 16 org.codehaus.groovy.tools.shell.AnsiDetector
794: 1 16 java.util.jar.JavaUtilJarAccessImpl
795: 1 16 sun.reflect.GeneratedMethodAccessor24
796: 1 16 sun.reflect.GeneratedMethodAccessor15
797: 1 16 [Ljava.lang.Enum;
798: 1 16 org.codehaus.groovy.transform.ASTTransformationVisitor$1
799: 1 16 org.codehaus.groovy.vmplugin.v6.Java6
800: 1 16 [Ljava.util.prefs.AbstractPreferences;
801: 1 16 java.lang.Runtime
802: 1 16 sun.reflect.GeneratedMethodAccessor28
803: 1 16 [Lorg.codehaus.groovy.tools.GroovyClass;
804: 1 16 org.apache.commons.cli.HelpFormatter$OptionComparator
805: 1 16 groovy.lang.MetaClassRegistry$MetaClassCreationHandle
806: 1 16 java.util.Hashtable$EmptyEnumerator
807: 1 16 sun.reflect.GeneratedConstructorAccessor5
808: 1 16 java.util.Hashtable$EmptyIterator
809: 1 16 java.net.URLClassLoader$7
810: 1 16 groovy.lang.MetaClassImpl$16
811: 1 16 java.net.UnknownContentHandler
812: 1 16 java.security.AllPermission
813: 1 16 java.util.Timer$1
814: 1 16 groovy.lang.MetaClassImpl$17
815: 1 16 java.util.Collections$EmptyList
816: 1 16 antlr.Token
817: 1 16 sun.misc.Unsafe
818: 1 16 org.codehaus.groovy.util.ManagedReference$1
819: 1 16 sun.reflect.GeneratedConstructorAccessor1
820: 1 16 org.codehaus.groovy.ast.builder.AstBuilderTransformation
821: 1 16 java.util.TreeMap$KeySet
822: 1 16 java.util.prefs.FileSystemPreferences$5
823: 1 16 groovy.util.Node$1
Total 271714 25578112
groovy:000>
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.IOException;
import java.lang.management.ManagementFactory;
import java.lang.management.RuntimeMXBean;
import com.sun.tools.attach.AttachNotSupportedException;
import com.sun.tools.attach.VirtualMachine;
import sun.tools.attach.HotSpotVirtualMachine;
// tools.jar must be in the class path
public class Utils {
public static InputStream heapHisto(String vmid) throws IOException, AttachNotSupportedException {
HotSpotVirtualMachine vm = (HotSpotVirtualMachine) VirtualMachine.attach(vmid);
InputStream histo = vm.heapHisto();
vm.detach();
return histo;
}
public static String getOwnPid() {
RuntimeMXBean runtime = ManagementFactory.getRuntimeMXBean();
String name = runtime.getName(); // format: "pid@hostname"
return name.substring(0, name.indexOf('@'));
}
public static void main(String[] args) throws Exception { // example
InputStream is = heapHisto(getOwnPid());
String histo = getText(new BufferedReader(new InputStreamReader(is)));
System.out.println(histo);
}
public static String getText(BufferedReader reader) throws IOException {
StringBuilder answer = new StringBuilder();
char[] charBuffer = new char[8192];
int nbCharRead /* = 0*/;
while ((nbCharRead = reader.read(charBuffer)) != -1) {
answer.append(charBuffer, 0, nbCharRead);
}
reader.close();
return answer.toString();
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment