Created
November 23, 2011 06:50
-
-
Save rednaxelafx/1388046 to your computer and use it in GitHub Desktop.
Get heap histogram from within a Java program itself
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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()) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
$ 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> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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