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 hidden or 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 hidden or 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 hidden or 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