Android, JVM Heap dump analysis doesn’t have to be done manually (painfully) anymore. You can programmatically analyze Heap dumps through our REST API. Below are the few use cases where our heap dump analysis REST APIs used by major enterprises.
Use Case 1: CI/CD pipeline
As part of continuous integration pipeline, several mature engineering organizations are executing performance tests. As part of this stress tests, they capture heap dumps from the application. Captured heap dumps are analyzed through our heap dump analysis REST API. If API identifies any memory vulnerabilities or certain values (like Object count, or wasted memory size) goes beyond a threshold, then the entire build is failed.
Use Case 2: Production root cause analysis
Whenever application experiences any memory problems or OutOfMemoryError, then heap dumps are captured from the application to analyze. Captured heap dumps can be programmatically analyzed through heap dump analysis REST API. Root cause analysis can be instantly identified.
Use Case 3: Analyzing multiple dumps instantly
Enterprises have multiple applications. It’s hard to analyze each applications heap dump manually on periodic basis, both in production and test environment. It’s both time consuming and tedious process. In such circumstances, they configure cron job that will capture heap dumps on a periodic basis and analyze heap dumps through our REST API. They configure alerts in case if heap dump thresholds drop below certain values.
How to invoke Heap Dump Analysis API?
Invoking the Heap Dump API is very simple:
- You will have to Register with us. We will email you the API key. This is the one-time setup process. Note: if you have purchased enterprise version with API, you don’t have to worry about registration. The API Key will be provided to you as part of installation instructions.
- POST HTTP request to https://api.heaphero.io/analyze-hd-api?apiKey={YOUR_API_KEY}
- The body of the HTTP request should contain the Heap Dump that needs to be analyzed.
- HTTP response will be sent back in JSON format.
CURL command
Assuming your Heap Dump file is located in ./my-heap-dump.hprof, then below is the CURL command to invoke the API:
curl -X POST --data-binary @./my-heap-dump.hprof https://api.heaphero.io/analyze-hd-api?apiKey={YOUR_API_KEY} --header "Content-Type:text"
It cannot get any simpler than that? Isn’t it?
Compression
Heap Dump are quite large in size. For fast and efficient processing, we recommend you to compress and send the heap dump files. When you are compressing the heap dump, you need to pass ‘Content-Encoding’ element in the HTTP Header element or in the URL parameter.
Say suppose you are compressing heap dump file into ‘zip’ format, then you can invoke the API with HTTP header element
curl -X POST -T @./my-heap-dump.zip "https://api.heaphero.io/analyze-hd-api?apiKey={YOUR_API_KEY}" --header "Content-Type:text" --header "Content-Encoding:zip"
or you can also invoke the API with ‘Content-Encoding’ element in the URL parameter
curl -X POST -T @./my-heap-dump.zip "https://api.heaphero.io/analyze-hd-api?apiKey={API_KEY_SENT_IN_EMAIL}&Content-Encoding=zip" --header "Content-Type:text"
We support following compression formats :
zip, gz, xz, z, lzma, deflate, sz, lz4, zstd, bz2, tar
You may use the one of your choice. Whatever compression format you used for compressing the heap dump should be passed in ‘Content-Encoding’ element.
Downloading Heap Dump from remote location
Say suppose, you have stored your heap dump files in a remote location like AWS S3 bucket. In those cases, if you want to analyze your heap dump then you will have to download files to your local machine and then invoke the API with heap dump file. To make it simple and automation easier we have introduced ‘location’ parameter in our API. You can pass http(s) URL location to the ‘location’ parameter and invoke the API. When you do it, API will download file from the remote location, analyze the data and return back the response. For more details refer to this article.
curl -X POST "https://api.heaphero.io/analyze-hd-api?apiKey={YOU_API_KEY}&location={HEAP-DUMP-HTTP-URL}" --header "Content-Type:text"
Postman
You can also invoke API using the POSTMAN, SOAP UI,… sort of tools. Steps to invoke HeapHero API through Postman is outlined in this article.
Sample Response:
{
"troubleshootReport":{
"problems":[
{
"severity":"DANGER",
"description":"One instance of <b>\"javassist.ClassPool\"</b> occupies <b>380.14 MB (98.79%)</b>. The instance is referenced by classloader/component. <b>\"sun.misc.Launcher$AppClassLoader @ 0xe2523520\"</b>. The memory is accumulated in one instance of <b>\"java.util.Hashtable$Entry[]\"</b>, which occupies <b>380.14 MB (98.79%)</b>.",
"type":"LEAK_SUSPECT",
"id":1
}
],
"potentialMemoryLeaks":[
{
"description":"One instance of <b>\"javassist.ClassPool\"</b> occupies <b>380.14 MB (98.79%)</b>. The instance is referenced by classloader/component. <b>\"sun.misc.Launcher$AppClassLoader @ 0xe2523520\"</b>. The memory is accumulated in one instance of <b>\"java.util.Hashtable$Entry[]\"</b>, which occupies <b>380.14 MB (98.79%)</b>.",
"shortestPathToAccumulationPoint":[
{
"label":"java.util.Hashtable$Entry[393215] @ 0xf8949ed8",
"shallowSize":1572880,
"retainedSize":398609656,
"objectId":8714149,
"objectType":3,
"gCRoot":false,
"children":[
{
"label":"java.util.Hashtable @ 0xe24fef60",
"shallowSize":48,
"retainedSize":398609704,
"objectId":834979,
"objectType":4,
"gCRoot":false,
"children":[
{
"label":"javassist.ClassPool @ 0xe24fee98",
"shallowSize":40,
"retainedSize":398609880,
"objectId":834974,
"objectType":4,
"gCRoot":false,
"children":[
{
"label":"java.lang.Thread @ 0xe259a9d8 main",
"shallowSize":120,
"retainedSize":1256,
"objectId":848559,
"objectType":4,
"gCRoot":true,
"suffix":"Thread"
},
{
"label":"javassist.CtNewClass @ 0xf550a740",
"shallowSize":64,
"retainedSize":96,
"objectId":7563242,
"objectType":4,
"gCRoot":false,
"children":[
{
"label":"java.lang.Thread @ 0xe259a9d8 main",
"shallowSize":120,
"retainedSize":1256,
"objectId":848559,
"objectType":4,
"gCRoot":true,
"suffix":"Thread"
}
],
"suffix":""
},
{
"label":"class javassist.ClassPool @ 0xe0872058",
"shallowSize":24,
"retainedSize":392,
"objectId":191580,
"objectType":1,
"gCRoot":false,
"children":[
{
"label":"java.lang.Object[163840] @ 0xed1f6788",
"shallowSize":655376,
"retainedSize":4238304,
"objectId":4665464,
"objectType":3,
"gCRoot":false,
"children":[
{
"label":"java.util.Vector @ 0xe254fa38",
"shallowSize":32,
"retainedSize":4238336,
"objectId":842338,
"objectType":4,
"gCRoot":false,
"children":[
{
"label":"sun.misc.Launcher$AppClassLoader @ 0xe2523520",
"shallowSize":80,
"retainedSize":4259480,
"objectId":838229,
"objectType":2,
"gCRoot":false,
"children":[
{
"label":"class java.lang.ClassLoader @ 0xe0000370",
"shallowSize":40,
"retainedSize":5536,
"objectId":10,
"objectType":1,
"gCRoot":true,
"suffix":"System Class"
},
{
"label":"java.lang.Thread @ 0xe259a208 Attach Listener",
"shallowSize":120,
"retainedSize":248,
"objectId":848539,
"objectType":4,
"gCRoot":true,
"suffix":"Thread"
},
{
"label":"java.lang.Thread @ 0xe259a400 Signal Dispatcher",
"shallowSize":120,
"retainedSize":256,
"objectId":848544,
"objectType":4,
"gCRoot":true,
"suffix":"Thread"
},
{
"label":"java.lang.Thread @ 0xe259a9d8 main",
"shallowSize":120,
"retainedSize":1256,
"objectId":848559,
"objectType":4,
"gCRoot":true,
"suffix":"Thread"
},
{
"label":"class sun.launcher.LauncherHelper @ 0xe259f3a8",
"shallowSize":80,
"retainedSize":1064,
"objectId":848690,
"objectType":1,
"gCRoot":true,
"suffix":"System Class"
},
{
"label":"sun.misc.Launcher @ 0xe08fa758",
"shallowSize":16,
"retainedSize":16,
"objectId":202793,
"objectType":4,
"gCRoot":false,
"children":[
{
"label":"class sun.misc.Launcher @ 0xe08eac90",
"shallowSize":24,
"retainedSize":272,
"objectId":201459,
"objectType":1,
"gCRoot":true,
"suffix":"System Class"
}
],
"prefix":"launcher",
"suffix":""
},
{
"label":"class com.buggyapp.metaspaceleak.MetaspaceLeakProgram @ 0xe259f460",
"shallowSize":8,
"retainedSize":208,
"objectId":848691,
"objectType":1,
"gCRoot":false,
"children":[
{
"label":"class sun.launcher.LauncherHelper @ 0xe259f3a8",
"shallowSize":80,
"retainedSize":1064,
"objectId":848690,
"objectType":1,
"gCRoot":true,
"suffix":"System Class"
}
],
"suffix":""
},
{
"label":"class javassist.bytecode.LongVector @ 0xe2c676a0",
"shallowSize":16,
"retainedSize":16,
"objectId":984716,
"objectType":1,
"gCRoot":false,
"children":[
{
"label":"javassist.bytecode.LongVector @ 0xf550a7e0",
"shallowSize":24,
"retainedSize":600,
"objectId":7563245,
"objectType":4,
"gCRoot":false,
"children":[
{
"label":"java.lang.Thread @ 0xe259a9d8 main",
"shallowSize":120,
"retainedSize":1256,
"objectId":848559,
"objectType":4,
"gCRoot":true,
"suffix":"Thread"
}
],
"suffix":""
}
],
"suffix":""
},
{
"label":"class javassist.bytecode.ClassInfo @ 0xe2c67f58",
"shallowSize":8,
"retainedSize":88,
"objectId":984742,
"objectType":1,
"gCRoot":false,
"children":[
{
"label":"javassist.bytecode.ClassInfo @ 0xf550ab98",
"shallowSize":24,
"retainedSize":24,
"objectId":7563254,
"objectType":4,
"gCRoot":false,
"children":[
{
"label":"java.lang.Thread @ 0xe259a9d8 main",
"shallowSize":120,
"retainedSize":1256,
"objectId":848559,
"objectType":4,
"gCRoot":true,
"suffix":"Thread"
}
],
"suffix":""
}
],
"suffix":""
},
{
"label":"class javassist.bytecode.ClassFile @ 0xe2c686c8",
"shallowSize":56,
"retainedSize":1168,
"objectId":984762,
"objectType":1,
"gCRoot":false,
"children":[
{
"label":"javassist.bytecode.ClassFile @ 0xf550a780",
"shallowSize":64,
"retainedSize":1064,
"objectId":7563243,
"objectType":4,
"gCRoot":false,
"children":[
{
"label":"java.lang.Thread @ 0xe259a9d8 main",
"shallowSize":120,
"retainedSize":1256,
"objectId":848559,
"objectType":4,
"gCRoot":true,
"suffix":"Thread"
}
],
"suffix":""
}
],
"suffix":""
}
],
"suffix":""
}
],
"prefix":"classes",
"suffix":""
}
],
"prefix":"elementData",
"suffix":""
}
],
"suffix":""
}
],
"suffix":""
}
],
"prefix":"classes",
"suffix":""
}
],
"prefix":"table",
"suffix":""
}
]
}
],
"overview":{
"identifierSize":8,
"creationDate":1711585567264,
"numberOfObjects":8807730,
"numberOfGCRoots":801,
"numberOfClasses":149958,
"numberOfClassLoaders":3,
"usedHeapSize":403473040,
"generationInfoAvailable":false,
"jvmOpts":[
]
},
"histograms":[
{
"groupByClass":[
{
"objects":0,
"shallowSize":0,
"retainedSize":0,
"label":"java.util.zip.ZipFile$ZipFileInputStream",
"objectId":195986,
"type":1
},
{
"objects":0,
"shallowSize":0,
"retainedSize":0,
"label":"java.util.SubList$1",
"objectId":192038,
"type":1
},
{
"objects":0,
"shallowSize":0,
"retainedSize":0,
"label":"java.lang.invoke.LambdaForm$MH",
"objectId":855508,
"type":1
},
{
"objects":0,
"shallowSize":0,
"retainedSize":0,
"label":"java.lang.Class$1",
"objectId":199447,
"type":1
},
{
"objects":0,
"shallowSize":0,
"retainedSize":0,
"label":"java.lang.invoke.LambdaForm$DMH",
"objectId":854377,
"type":1
},
{
"objects":0,
"shallowSize":0,
"retainedSize":0,
"label":"java.util.LinkedHashMap$LinkedKeySet",
"objectId":194512,
"type":1
},
{
"objects":0,
"shallowSize":0,
"retainedSize":0,
"label":"java.lang.ClassLoader$3",
"objectId":198220,
"type":1
},
{
"objects":0,
"shallowSize":0,
"retainedSize":0,
"label":"sun.misc.PostVMInitHook$1",
"objectId":197089,
"type":1
},
{
"objects":0,
"shallowSize":0,
"retainedSize":0,
"label":"java.lang.invoke.LambdaForm$DMH",
"objectId":13,
"type":1
},
{
"objects":0,
"shallowSize":0,
"retainedSize":0,
"label":"java.util.regex.Pattern$Dot",
"objectId":193093,
"type":1
}
]
},
{
"groupBySuperClass":[
{
"objects":8807730,
"shallowSize":403473040,
"retainedSize":0,
"label":"java.lang.Object",
"objectId":834978,
"type":5
}
]
},
{
"groupByClassloader":[
{
"objects":3129878,
"shallowSize":171692944,
"retainedSize":0,
"label":"sun.misc.Launcher$AppClassLoader @ 0xe2523520",
"objectId":838229,
"type":2
},
{
"objects":5677852,
"shallowSize":231780096,
"retainedSize":0,
"label":"<system class loader>",
"objectId":0,
"type":2
}
]
},
{
"groupByPackage":[
{
"objects":0,
"shallowSize":0,
"retainedSize":0,
"label":"com",
"objectId":98689,
"type":6
},
{
"objects":10,
"shallowSize":304,
"retainedSize":0,
"label":"jdk",
"objectId":105073,
"type":6
},
{
"objects":4481448,
"shallowSize":149198976,
"retainedSize":0,
"label":"java",
"objectId":3254818,
"type":6
},
{
"objects":612,
"shallowSize":22320,
"retainedSize":0,
"label":"sun",
"objectId":114252,
"type":6
},
{
"objects":3129878,
"shallowSize":171692944,
"retainedSize":0,
"label":"javassist",
"objectId":-824719032,
"type":6
},
{
"objects":1,
"shallowSize":16,
"retainedSize":-16,
"label":"double[]",
"objectId":201504,
"type":1
},
{
"objects":1,
"shallowSize":16,
"retainedSize":-16,
"label":"boolean[]",
"objectId":201506,
"type":1
},
{
"objects":1,
"shallowSize":16,
"retainedSize":-16,
"label":"float[]",
"objectId":201505,
"type":1
},
{
"objects":3,
"shallowSize":296,
"retainedSize":-296,
"label":"long[]",
"objectId":201502,
"type":1
},
{
"objects":9,
"shallowSize":656,
"retainedSize":-656,
"label":"short[]",
"objectId":201503,
"type":1
}
]
}
],
"gcRoots":[
{
"label":"System Class",
"objects":769,
"objectId":0,
"shallowSize":0,
"retainedSize":0,
"rootIndex":0,
"classIndex":0,
"isGCRoot":true,
"isClassItem":false
},
{
"label":"JNI Global",
"objects":48,
"objectId":0,
"shallowSize":0,
"retainedSize":0,
"rootIndex":0,
"classIndex":0,
"isGCRoot":true,
"isClassItem":false
},
{
"label":"Thread",
"objects":5,
"objectId":0,
"shallowSize":0,
"retainedSize":0,
"rootIndex":0,
"classIndex":0,
"isGCRoot":true,
"isClassItem":false
},
{
"label":"Busy Monitor",
"objects":2,
"objectId":0,
"shallowSize":0,
"retainedSize":0,
"rootIndex":0,
"classIndex":0,
"isGCRoot":true,
"isClassItem":false
}
],
"largestObjects":[
{
"groupByNone":[
{
"label":"javassist.ClassPool @ 0xe24fee98",
"suffix":"",
"objectId":834974,
"objectType":4,
"gCRoot":false,
"shallowSize":40,
"retainedSize":398609880,
"percent":0.9879467535179054,
"isObjType":true,
"isThreadObject":false
},
{
"label":"sun.misc.Launcher$AppClassLoader @ 0xe2523520",
"suffix":"",
"objectId":838229,
"objectType":2,
"gCRoot":false,
"shallowSize":80,
"retainedSize":4259480,
"percent":0.010557037466493424,
"isObjType":true,
"isThreadObject":false
},
{
"label":"class sun.misc.FDBigInteger @ 0xe0895f80",
"suffix":"System Class",
"objectId":194534,
"objectType":1,
"gCRoot":true,
"shallowSize":40,
"retainedSize":37472,
"percent":9.287361554566322E-5,
"isObjType":true,
"isThreadObject":false
},
{
"label":"sun.security.provider.Sun @ 0xe2507518",
"suffix":"",
"objectId":835711,
"objectType":4,
"gCRoot":false,
"shallowSize":96,
"retainedSize":36576,
"percent":9.06528971551606E-5,
"isObjType":true,
"isThreadObject":false
},
{
"label":"class java.lang.System @ 0xe0000700",
"suffix":"System Class",
"objectId":21,
"objectType":1,
"gCRoot":true,
"shallowSize":32,
"retainedSize":35896,
"percent":8.896753051951129E-5,
"isObjType":true,
"isThreadObject":false
},
{
"label":"java.io.PrintStream @ 0xe259f6e0",
"suffix":"",
"objectId":848704,
"objectType":4,
"gCRoot":false,
"shallowSize":32,
"retainedSize":25056,
"percent":6.210080356298403E-5,
"isObjType":true,
"isThreadObject":false
},
{
"label":"sun.misc.Launcher$ExtClassLoader @ 0xe2523580",
"suffix":"",
"objectId":838230,
"objectType":2,
"gCRoot":false,
"shallowSize":80,
"retainedSize":18536,
"percent":4.594111170352299E-5,
"isObjType":true,
"isThreadObject":false
},
{
"label":"class java.security.Security @ 0xe0895e38",
"suffix":"System Class",
"objectId":194531,
"objectType":1,
"gCRoot":true,
"shallowSize":16,
"retainedSize":17304,
"percent":4.288762391658188E-5,
"isObjType":true,
"isThreadObject":false
},
{
"label":"class java.lang.invoke.MethodType @ 0xe2577200",
"suffix":"System Class",
"objectId":845551,
"objectType":1,
"gCRoot":true,
"shallowSize":64,
"retainedSize":14440,
"percent":3.578925620408244E-5,
"isObjType":true,
"isThreadObject":false
},
{
"label":"class java.io.File @ 0xe283abe0",
"suffix":"System Class",
"objectId":900763,
"objectType":1,
"gCRoot":true,
"shallowSize":56,
"retainedSize":14248,
"percent":3.531338797754616E-5,
"isObjType":true,
"isThreadObject":false
}
],
"groupByClass":[
{
"objects":1,
"label":"javassist.ClassPool",
"objectId":191580,
"objectType":1,
"gCRoot":false,
"shallowSize":40,
"retainedSize":398609880,
"percent":0.9879467535179054,
"isObjType":true,
"isThreadObject":false
},
{
"objects":1,
"label":"sun.misc.Launcher$AppClassLoader",
"objectId":201458,
"objectType":1,
"gCRoot":true,
"shallowSize":80,
"retainedSize":4259480,
"percent":0.010557037466493424,
"isObjType":true,
"isThreadObject":false
},
{
"objects":834,
"label":"java.lang.Class",
"objectId":845815,
"objectType":1,
"gCRoot":true,
"shallowSize":12184,
"retainedSize":320400,
"percent":7.941051030324108E-4,
"isObjType":true,
"isThreadObject":false
},
{
"objects":988,
"label":"java.lang.String",
"objectId":845819,
"objectType":1,
"gCRoot":true,
"shallowSize":23712,
"retainedSize":75912,
"percent":1.8814640006678017E-4,
"isObjType":true,
"isThreadObject":false
},
{
"objects":176,
"label":"java.lang.invoke.MethodType",
"objectId":845551,
"objectType":1,
"gCRoot":true,
"shallowSize":7040,
"retainedSize":37032,
"percent":9.178308419318426E-5,
"isObjType":true,
"isThreadObject":false
},
{
"objects":1,
"label":"sun.security.provider.Sun",
"objectId":194526,
"objectType":1,
"gCRoot":true,
"shallowSize":96,
"retainedSize":36576,
"percent":9.06528971551606E-5,
"isObjType":true,
"isThreadObject":false
},
{
"objects":66,
"label":"java.lang.invoke.LambdaForm",
"objectId":845843,
"objectType":1,
"gCRoot":true,
"shallowSize":3168,
"retainedSize":28424,
"percent":7.044832537014122E-5,
"isObjType":true,
"isThreadObject":false
},
{
"objects":1,
"label":"java.io.PrintStream",
"objectId":199467,
"objectType":1,
"gCRoot":true,
"shallowSize":32,
"retainedSize":25056,
"percent":6.210080356298403E-5,
"isObjType":true,
"isThreadObject":false
},
{
"objects":1,
"label":"sun.misc.Launcher$ExtClassLoader",
"objectId":201457,
"objectType":1,
"gCRoot":true,
"shallowSize":80,
"retainedSize":18536,
"percent":4.594111170352299E-5,
"isObjType":true,
"isThreadObject":false
},
{
"objects":45,
"label":"java.lang.invoke.MethodTypeForm",
"objectId":845680,
"objectType":1,
"gCRoot":true,
"shallowSize":2520,
"retainedSize":12120,
"percent":3.003918180010243E-5,
"isObjType":true,
"isThreadObject":false
}
],
"groupByClassloader":[
{
"objects":56,
"label":"sun.misc.Launcher$AppClassLoader @ 0xe2523520",
"objectId":838229,
"objectType":2,
"gCRoot":false,
"shallowSize":1439,
"retainedSize":402879431,
"percent":0.9985287517599689,
"isObjType":true,
"isThreadObject":false
},
{
"objects":2389,
"label":"<system class loader>",
"objectId":0,
"objectType":2,
"gCRoot":false,
"shallowSize":62511,
"retainedSize":575071,
"percent":0.00142530217136689,
"isObjType":true,
"isThreadObject":false
},
{
"objects":1,
"label":"sun.misc.Launcher$ExtClassLoader @ 0xe2523580",
"objectId":838230,
"objectType":2,
"gCRoot":false,
"shallowSize":79,
"retainedSize":18535,
"percent":4.593863322317645E-5,
"isObjType":true,
"isThreadObject":false
}
],
"groupByPackage":[
{
"objects":54,
"label":"javassist",
"objectId":-824719032,
"objectType":6,
"gCRoot":false,
"shallowSize":1352,
"retainedSize":398619744,
"percent":0.9879712012480437,
"isObjType":true,
"isThreadObject":false
},
{
"objects":269,
"label":"sun",
"objectId":114252,
"objectType":6,
"gCRoot":false,
"shallowSize":5400,
"retainedSize":4420104,
"percent":0.010955140893676564,
"isObjType":true,
"isThreadObject":false
},
{
"objects":2080,
"label":"java",
"objectId":3254818,
"objectType":6,
"gCRoot":false,
"shallowSize":52456,
"retainedSize":424928,
"percent":0.0010531756966958685,
"isObjType":true,
"isThreadObject":false
},
{
"objects":17,
"label":"jdk",
"objectId":105073,
"objectType":6,
"gCRoot":false,
"shallowSize":528,
"retainedSize":3768,
"percent":9.338913945774419E-6,
"isObjType":true,
"isThreadObject":false
},
{
"objects":4,
"label":"char[]",
"objectId":-1361632968,
"objectType":1,
"gCRoot":false,
"shallowSize":3632,
"retainedSize":3632,
"percent":9.001840618644557E-6,
"isObjType":true,
"isThreadObject":false
},
{
"objects":17,
"label":"int[]",
"objectId":100361105,
"objectType":1,
"gCRoot":false,
"shallowSize":640,
"retainedSize":640,
"percent":1.5862274217875871E-6,
"isObjType":true,
"isThreadObject":false
},
{
"objects":1,
"label":"com",
"objectId":98689,
"objectType":6,
"gCRoot":false,
"shallowSize":8,
"retainedSize":208,
"percent":5.155239120809658E-7,
"isObjType":true,
"isThreadObject":false
},
{
"objects":2,
"label":"byte[]",
"objectId":-1374008726,
"objectType":1,
"gCRoot":false,
"shallowSize":16,
"retainedSize":16,
"percent":3.9655685544689675E-8,
"isObjType":true,
"isThreadObject":false
},
{
"objects":1,
"label":"long[]",
"objectId":-1097129250,
"objectType":1,
"gCRoot":false,
"shallowSize":0,
"retainedSize":0,
"percent":0.0,
"isObjType":true,
"isThreadObject":false
},
{
"objects":1,
"label":"short[]",
"objectId":2067161310,
"objectType":1,
"gCRoot":false,
"shallowSize":0,
"retainedSize":0,
"percent":0.0,
"isObjType":true,
"isThreadObject":false
}
]
},
{
"groupByNone":[
{
"label":"javassist.ClassPool @ 0xe24fee98",
"suffix":"",
"objectId":834974,
"objectType":4,
"gCRoot":false,
"shallowSize":40,
"retainedSize":398609880,
"percent":0.9879467535179054,
"isObjType":true,
"isThreadObject":false
},
{
"label":"sun.misc.Launcher$AppClassLoader @ 0xe2523520",
"suffix":"",
"objectId":838229,
"objectType":2,
"gCRoot":false,
"shallowSize":80,
"retainedSize":4259480,
"percent":0.010557037466493424,
"isObjType":true,
"isThreadObject":false
},
{
"label":"class sun.misc.FDBigInteger @ 0xe0895f80",
"suffix":"System Class",
"objectId":194534,
"objectType":1,
"gCRoot":true,
"shallowSize":40,
"retainedSize":37472,
"percent":9.287361554566322E-5,
"isObjType":true,
"isThreadObject":false
},
{
"label":"sun.security.provider.Sun @ 0xe2507518",
"suffix":"",
"objectId":835711,
"objectType":4,
"gCRoot":false,
"shallowSize":96,
"retainedSize":36576,
"percent":9.06528971551606E-5,
"isObjType":true,
"isThreadObject":false
},
{
"label":"class java.lang.System @ 0xe0000700",
"suffix":"System Class",
"objectId":21,
"objectType":1,
"gCRoot":true,
"shallowSize":32,
"retainedSize":35896,
"percent":8.896753051951129E-5,
"isObjType":true,
"isThreadObject":false
},
{
"label":"java.io.PrintStream @ 0xe259f6e0",
"suffix":"",
"objectId":848704,
"objectType":4,
"gCRoot":false,
"shallowSize":32,
"retainedSize":25056,
"percent":6.210080356298403E-5,
"isObjType":true,
"isThreadObject":false
},
{
"label":"sun.misc.Launcher$ExtClassLoader @ 0xe2523580",
"suffix":"",
"objectId":838230,
"objectType":2,
"gCRoot":false,
"shallowSize":80,
"retainedSize":18536,
"percent":4.594111170352299E-5,
"isObjType":true,
"isThreadObject":false
},
{
"label":"class java.security.Security @ 0xe0895e38",
"suffix":"System Class",
"objectId":194531,
"objectType":1,
"gCRoot":true,
"shallowSize":16,
"retainedSize":17304,
"percent":4.288762391658188E-5,
"isObjType":true,
"isThreadObject":false
},
{
"label":"class java.lang.invoke.MethodType @ 0xe2577200",
"suffix":"System Class",
"objectId":845551,
"objectType":1,
"gCRoot":true,
"shallowSize":64,
"retainedSize":14440,
"percent":3.578925620408244E-5,
"isObjType":true,
"isThreadObject":false
},
{
"label":"class java.io.File @ 0xe283abe0",
"suffix":"System Class",
"objectId":900763,
"objectType":1,
"gCRoot":true,
"shallowSize":56,
"retainedSize":14248,
"percent":3.531338797754616E-5,
"isObjType":true,
"isThreadObject":false
}
],
"groupByClass":[
{
"objects":1,
"label":"javassist.ClassPool",
"objectId":191580,
"objectType":1,
"gCRoot":false,
"shallowSize":40,
"retainedSize":398609880,
"percent":0.9879467535179054,
"isObjType":true,
"isThreadObject":false
},
{
"objects":1,
"label":"sun.misc.Launcher$AppClassLoader",
"objectId":201458,
"objectType":1,
"gCRoot":true,
"shallowSize":80,
"retainedSize":4259480,
"percent":0.010557037466493424,
"isObjType":true,
"isThreadObject":false
},
{
"objects":834,
"label":"java.lang.Class",
"objectId":845815,
"objectType":1,
"gCRoot":true,
"shallowSize":12184,
"retainedSize":320400,
"percent":7.941051030324108E-4,
"isObjType":true,
"isThreadObject":false
},
{
"objects":988,
"label":"java.lang.String",
"objectId":845819,
"objectType":1,
"gCRoot":true,
"shallowSize":23712,
"retainedSize":75912,
"percent":1.8814640006678017E-4,
"isObjType":true,
"isThreadObject":false
},
{
"objects":176,
"label":"java.lang.invoke.MethodType",
"objectId":845551,
"objectType":1,
"gCRoot":true,
"shallowSize":7040,
"retainedSize":37032,
"percent":9.178308419318426E-5,
"isObjType":true,
"isThreadObject":false
},
{
"objects":1,
"label":"sun.security.provider.Sun",
"objectId":194526,
"objectType":1,
"gCRoot":true,
"shallowSize":96,
"retainedSize":36576,
"percent":9.06528971551606E-5,
"isObjType":true,
"isThreadObject":false
},
{
"objects":66,
"label":"java.lang.invoke.LambdaForm",
"objectId":845843,
"objectType":1,
"gCRoot":true,
"shallowSize":3168,
"retainedSize":28424,
"percent":7.044832537014122E-5,
"isObjType":true,
"isThreadObject":false
},
{
"objects":1,
"label":"java.io.PrintStream",
"objectId":199467,
"objectType":1,
"gCRoot":true,
"shallowSize":32,
"retainedSize":25056,
"percent":6.210080356298403E-5,
"isObjType":true,
"isThreadObject":false
},
{
"objects":1,
"label":"sun.misc.Launcher$ExtClassLoader",
"objectId":201457,
"objectType":1,
"gCRoot":true,
"shallowSize":80,
"retainedSize":18536,
"percent":4.594111170352299E-5,
"isObjType":true,
"isThreadObject":false
},
{
"objects":45,
"label":"java.lang.invoke.MethodTypeForm",
"objectId":845680,
"objectType":1,
"gCRoot":true,
"shallowSize":2520,
"retainedSize":12120,
"percent":3.003918180010243E-5,
"isObjType":true,
"isThreadObject":false
}
],
"groupByClassloader":[
{
"objects":56,
"label":"sun.misc.Launcher$AppClassLoader @ 0xe2523520",
"objectId":838229,
"objectType":2,
"gCRoot":false,
"shallowSize":1439,
"retainedSize":402879431,
"percent":0.9985287517599689,
"isObjType":true,
"isThreadObject":false
},
{
"objects":2389,
"label":"<system class loader>",
"objectId":0,
"objectType":2,
"gCRoot":false,
"shallowSize":62511,
"retainedSize":575071,
"percent":0.00142530217136689,
"isObjType":true,
"isThreadObject":false
},
{
"objects":1,
"label":"sun.misc.Launcher$ExtClassLoader @ 0xe2523580",
"objectId":838230,
"objectType":2,
"gCRoot":false,
"shallowSize":79,
"retainedSize":18535,
"percent":4.593863322317645E-5,
"isObjType":true,
"isThreadObject":false
}
],
"groupByPackage":[
{
"objects":54,
"label":"javassist",
"objectId":-824719032,
"objectType":6,
"gCRoot":false,
"shallowSize":1352,
"retainedSize":398619744,
"percent":0.9879712012480437,
"isObjType":true,
"isThreadObject":false
},
{
"objects":269,
"label":"sun",
"objectId":114252,
"objectType":6,
"gCRoot":false,
"shallowSize":5400,
"retainedSize":4420104,
"percent":0.010955140893676564,
"isObjType":true,
"isThreadObject":false
},
{
"objects":2080,
"label":"java",
"objectId":3254818,
"objectType":6,
"gCRoot":false,
"shallowSize":52456,
"retainedSize":424928,
"percent":0.0010531756966958685,
"isObjType":true,
"isThreadObject":false
},
{
"objects":17,
"label":"jdk",
"objectId":105073,
"objectType":6,
"gCRoot":false,
"shallowSize":528,
"retainedSize":3768,
"percent":9.338913945774419E-6,
"isObjType":true,
"isThreadObject":false
},
{
"objects":4,
"label":"char[]",
"objectId":-1361632968,
"objectType":1,
"gCRoot":false,
"shallowSize":3632,
"retainedSize":3632,
"percent":9.001840618644557E-6,
"isObjType":true,
"isThreadObject":false
},
{
"objects":17,
"label":"int[]",
"objectId":100361105,
"objectType":1,
"gCRoot":false,
"shallowSize":640,
"retainedSize":640,
"percent":1.5862274217875871E-6,
"isObjType":true,
"isThreadObject":false
},
{
"objects":1,
"label":"com",
"objectId":98689,
"objectType":6,
"gCRoot":false,
"shallowSize":8,
"retainedSize":208,
"percent":5.155239120809658E-7,
"isObjType":true,
"isThreadObject":false
},
{
"objects":2,
"label":"byte[]",
"objectId":-1374008726,
"objectType":1,
"gCRoot":false,
"shallowSize":16,
"retainedSize":16,
"percent":3.9655685544689675E-8,
"isObjType":true,
"isThreadObject":false
},
{
"objects":1,
"label":"long[]",
"objectId":-1097129250,
"objectType":1,
"gCRoot":false,
"shallowSize":0,
"retainedSize":0,
"percent":0.0,
"isObjType":true,
"isThreadObject":false
},
{
"objects":1,
"label":"short[]",
"objectId":2067161310,
"objectType":1,
"gCRoot":false,
"shallowSize":0,
"retainedSize":0,
"percent":0.0,
"isObjType":true,
"isThreadObject":false
}
]
},
{
"groupByNone":[
{
"label":"javassist.ClassPool @ 0xe24fee98",
"suffix":"",
"objectId":834974,
"objectType":4,
"gCRoot":false,
"shallowSize":40,
"retainedSize":398609880,
"percent":0.9879467535179054,
"isObjType":true,
"isThreadObject":false
},
{
"label":"sun.misc.Launcher$AppClassLoader @ 0xe2523520",
"suffix":"",
"objectId":838229,
"objectType":2,
"gCRoot":false,
"shallowSize":80,
"retainedSize":4259480,
"percent":0.010557037466493424,
"isObjType":true,
"isThreadObject":false
},
{
"label":"class sun.misc.FDBigInteger @ 0xe0895f80",
"suffix":"System Class",
"objectId":194534,
"objectType":1,
"gCRoot":true,
"shallowSize":40,
"retainedSize":37472,
"percent":9.287361554566322E-5,
"isObjType":true,
"isThreadObject":false
},
{
"label":"sun.security.provider.Sun @ 0xe2507518",
"suffix":"",
"objectId":835711,
"objectType":4,
"gCRoot":false,
"shallowSize":96,
"retainedSize":36576,
"percent":9.06528971551606E-5,
"isObjType":true,
"isThreadObject":false
},
{
"label":"class java.lang.System @ 0xe0000700",
"suffix":"System Class",
"objectId":21,
"objectType":1,
"gCRoot":true,
"shallowSize":32,
"retainedSize":35896,
"percent":8.896753051951129E-5,
"isObjType":true,
"isThreadObject":false
},
{
"label":"java.io.PrintStream @ 0xe259f6e0",
"suffix":"",
"objectId":848704,
"objectType":4,
"gCRoot":false,
"shallowSize":32,
"retainedSize":25056,
"percent":6.210080356298403E-5,
"isObjType":true,
"isThreadObject":false
},
{
"label":"sun.misc.Launcher$ExtClassLoader @ 0xe2523580",
"suffix":"",
"objectId":838230,
"objectType":2,
"gCRoot":false,
"shallowSize":80,
"retainedSize":18536,
"percent":4.594111170352299E-5,
"isObjType":true,
"isThreadObject":false
},
{
"label":"class java.security.Security @ 0xe0895e38",
"suffix":"System Class",
"objectId":194531,
"objectType":1,
"gCRoot":true,
"shallowSize":16,
"retainedSize":17304,
"percent":4.288762391658188E-5,
"isObjType":true,
"isThreadObject":false
},
{
"label":"class java.lang.invoke.MethodType @ 0xe2577200",
"suffix":"System Class",
"objectId":845551,
"objectType":1,
"gCRoot":true,
"shallowSize":64,
"retainedSize":14440,
"percent":3.578925620408244E-5,
"isObjType":true,
"isThreadObject":false
},
{
"label":"class java.io.File @ 0xe283abe0",
"suffix":"System Class",
"objectId":900763,
"objectType":1,
"gCRoot":true,
"shallowSize":56,
"retainedSize":14248,
"percent":3.531338797754616E-5,
"isObjType":true,
"isThreadObject":false
}
],
"groupByClass":[
{
"objects":1,
"label":"javassist.ClassPool",
"objectId":191580,
"objectType":1,
"gCRoot":false,
"shallowSize":40,
"retainedSize":398609880,
"percent":0.9879467535179054,
"isObjType":true,
"isThreadObject":false
},
{
"objects":1,
"label":"sun.misc.Launcher$AppClassLoader",
"objectId":201458,
"objectType":1,
"gCRoot":true,
"shallowSize":80,
"retainedSize":4259480,
"percent":0.010557037466493424,
"isObjType":true,
"isThreadObject":false
},
{
"objects":834,
"label":"java.lang.Class",
"objectId":845815,
"objectType":1,
"gCRoot":true,
"shallowSize":12184,
"retainedSize":320400,
"percent":7.941051030324108E-4,
"isObjType":true,
"isThreadObject":false
},
{
"objects":988,
"label":"java.lang.String",
"objectId":845819,
"objectType":1,
"gCRoot":true,
"shallowSize":23712,
"retainedSize":75912,
"percent":1.8814640006678017E-4,
"isObjType":true,
"isThreadObject":false
},
{
"objects":176,
"label":"java.lang.invoke.MethodType",
"objectId":845551,
"objectType":1,
"gCRoot":true,
"shallowSize":7040,
"retainedSize":37032,
"percent":9.178308419318426E-5,
"isObjType":true,
"isThreadObject":false
},
{
"objects":1,
"label":"sun.security.provider.Sun",
"objectId":194526,
"objectType":1,
"gCRoot":true,
"shallowSize":96,
"retainedSize":36576,
"percent":9.06528971551606E-5,
"isObjType":true,
"isThreadObject":false
},
{
"objects":66,
"label":"java.lang.invoke.LambdaForm",
"objectId":845843,
"objectType":1,
"gCRoot":true,
"shallowSize":3168,
"retainedSize":28424,
"percent":7.044832537014122E-5,
"isObjType":true,
"isThreadObject":false
},
{
"objects":1,
"label":"java.io.PrintStream",
"objectId":199467,
"objectType":1,
"gCRoot":true,
"shallowSize":32,
"retainedSize":25056,
"percent":6.210080356298403E-5,
"isObjType":true,
"isThreadObject":false
},
{
"objects":1,
"label":"sun.misc.Launcher$ExtClassLoader",
"objectId":201457,
"objectType":1,
"gCRoot":true,
"shallowSize":80,
"retainedSize":18536,
"percent":4.594111170352299E-5,
"isObjType":true,
"isThreadObject":false
},
{
"objects":45,
"label":"java.lang.invoke.MethodTypeForm",
"objectId":845680,
"objectType":1,
"gCRoot":true,
"shallowSize":2520,
"retainedSize":12120,
"percent":3.003918180010243E-5,
"isObjType":true,
"isThreadObject":false
}
],
"groupByClassloader":[
{
"objects":56,
"label":"sun.misc.Launcher$AppClassLoader @ 0xe2523520",
"objectId":838229,
"objectType":2,
"gCRoot":false,
"shallowSize":1439,
"retainedSize":402879431,
"percent":0.9985287517599689,
"isObjType":true,
"isThreadObject":false
},
{
"objects":2389,
"label":"<system class loader>",
"objectId":0,
"objectType":2,
"gCRoot":false,
"shallowSize":62511,
"retainedSize":575071,
"percent":0.00142530217136689,
"isObjType":true,
"isThreadObject":false
},
{
"objects":1,
"label":"sun.misc.Launcher$ExtClassLoader @ 0xe2523580",
"objectId":838230,
"objectType":2,
"gCRoot":false,
"shallowSize":79,
"retainedSize":18535,
"percent":4.593863322317645E-5,
"isObjType":true,
"isThreadObject":false
}
],
"groupByPackage":[
{
"objects":54,
"label":"javassist",
"objectId":-824719032,
"objectType":6,
"gCRoot":false,
"shallowSize":1352,
"retainedSize":398619744,
"percent":0.9879712012480437,
"isObjType":true,
"isThreadObject":false
},
{
"objects":269,
"label":"sun",
"objectId":114252,
"objectType":6,
"gCRoot":false,
"shallowSize":5400,
"retainedSize":4420104,
"percent":0.010955140893676564,
"isObjType":true,
"isThreadObject":false
},
{
"objects":2080,
"label":"java",
"objectId":3254818,
"objectType":6,
"gCRoot":false,
"shallowSize":52456,
"retainedSize":424928,
"percent":0.0010531756966958685,
"isObjType":true,
"isThreadObject":false
},
{
"objects":17,
"label":"jdk",
"objectId":105073,
"objectType":6,
"gCRoot":false,
"shallowSize":528,
"retainedSize":3768,
"percent":9.338913945774419E-6,
"isObjType":true,
"isThreadObject":false
},
{
"objects":4,
"label":"char[]",
"objectId":-1361632968,
"objectType":1,
"gCRoot":false,
"shallowSize":3632,
"retainedSize":3632,
"percent":9.001840618644557E-6,
"isObjType":true,
"isThreadObject":false
},
{
"objects":17,
"label":"int[]",
"objectId":100361105,
"objectType":1,
"gCRoot":false,
"shallowSize":640,
"retainedSize":640,
"percent":1.5862274217875871E-6,
"isObjType":true,
"isThreadObject":false
},
{
"objects":1,
"label":"com",
"objectId":98689,
"objectType":6,
"gCRoot":false,
"shallowSize":8,
"retainedSize":208,
"percent":5.155239120809658E-7,
"isObjType":true,
"isThreadObject":false
},
{
"objects":2,
"label":"byte[]",
"objectId":-1374008726,
"objectType":1,
"gCRoot":false,
"shallowSize":16,
"retainedSize":16,
"percent":3.9655685544689675E-8,
"isObjType":true,
"isThreadObject":false
},
{
"objects":1,
"label":"long[]",
"objectId":-1097129250,
"objectType":1,
"gCRoot":false,
"shallowSize":0,
"retainedSize":0,
"percent":0.0,
"isObjType":true,
"isThreadObject":false
},
{
"objects":1,
"label":"short[]",
"objectId":2067161310,
"objectType":1,
"gCRoot":false,
"shallowSize":0,
"retainedSize":0,
"percent":0.0,
"isObjType":true,
"isThreadObject":false
}
]
},
{
"groupByNone":[
{
"label":"javassist.ClassPool @ 0xe24fee98",
"suffix":"",
"objectId":834974,
"objectType":4,
"gCRoot":false,
"shallowSize":40,
"retainedSize":398609880,
"percent":0.9879467535179054,
"isObjType":true,
"isThreadObject":false
},
{
"label":"sun.misc.Launcher$AppClassLoader @ 0xe2523520",
"suffix":"",
"objectId":838229,
"objectType":2,
"gCRoot":false,
"shallowSize":80,
"retainedSize":4259480,
"percent":0.010557037466493424,
"isObjType":true,
"isThreadObject":false
},
{
"label":"class sun.misc.FDBigInteger @ 0xe0895f80",
"suffix":"System Class",
"objectId":194534,
"objectType":1,
"gCRoot":true,
"shallowSize":40,
"retainedSize":37472,
"percent":9.287361554566322E-5,
"isObjType":true,
"isThreadObject":false
},
{
"label":"sun.security.provider.Sun @ 0xe2507518",
"suffix":"",
"objectId":835711,
"objectType":4,
"gCRoot":false,
"shallowSize":96,
"retainedSize":36576,
"percent":9.06528971551606E-5,
"isObjType":true,
"isThreadObject":false
},
{
"label":"class java.lang.System @ 0xe0000700",
"suffix":"System Class",
"objectId":21,
"objectType":1,
"gCRoot":true,
"shallowSize":32,
"retainedSize":35896,
"percent":8.896753051951129E-5,
"isObjType":true,
"isThreadObject":false
},
{
"label":"java.io.PrintStream @ 0xe259f6e0",
"suffix":"",
"objectId":848704,
"objectType":4,
"gCRoot":false,
"shallowSize":32,
"retainedSize":25056,
"percent":6.210080356298403E-5,
"isObjType":true,
"isThreadObject":false
},
{
"label":"sun.misc.Launcher$ExtClassLoader @ 0xe2523580",
"suffix":"",
"objectId":838230,
"objectType":2,
"gCRoot":false,
"shallowSize":80,
"retainedSize":18536,
"percent":4.594111170352299E-5,
"isObjType":true,
"isThreadObject":false
},
{
"label":"class java.security.Security @ 0xe0895e38",
"suffix":"System Class",
"objectId":194531,
"objectType":1,
"gCRoot":true,
"shallowSize":16,
"retainedSize":17304,
"percent":4.288762391658188E-5,
"isObjType":true,
"isThreadObject":false
},
{
"label":"class java.lang.invoke.MethodType @ 0xe2577200",
"suffix":"System Class",
"objectId":845551,
"objectType":1,
"gCRoot":true,
"shallowSize":64,
"retainedSize":14440,
"percent":3.578925620408244E-5,
"isObjType":true,
"isThreadObject":false
},
{
"label":"class java.io.File @ 0xe283abe0",
"suffix":"System Class",
"objectId":900763,
"objectType":1,
"gCRoot":true,
"shallowSize":56,
"retainedSize":14248,
"percent":3.531338797754616E-5,
"isObjType":true,
"isThreadObject":false
}
],
"groupByClass":[
{
"objects":1,
"label":"javassist.ClassPool",
"objectId":191580,
"objectType":1,
"gCRoot":false,
"shallowSize":40,
"retainedSize":398609880,
"percent":0.9879467535179054,
"isObjType":true,
"isThreadObject":false
},
{
"objects":1,
"label":"sun.misc.Launcher$AppClassLoader",
"objectId":201458,
"objectType":1,
"gCRoot":true,
"shallowSize":80,
"retainedSize":4259480,
"percent":0.010557037466493424,
"isObjType":true,
"isThreadObject":false
},
{
"objects":834,
"label":"java.lang.Class",
"objectId":845815,
"objectType":1,
"gCRoot":true,
"shallowSize":12184,
"retainedSize":320400,
"percent":7.941051030324108E-4,
"isObjType":true,
"isThreadObject":false
},
{
"objects":988,
"label":"java.lang.String",
"objectId":845819,
"objectType":1,
"gCRoot":true,
"shallowSize":23712,
"retainedSize":75912,
"percent":1.8814640006678017E-4,
"isObjType":true,
"isThreadObject":false
},
{
"objects":176,
"label":"java.lang.invoke.MethodType",
"objectId":845551,
"objectType":1,
"gCRoot":true,
"shallowSize":7040,
"retainedSize":37032,
"percent":9.178308419318426E-5,
"isObjType":true,
"isThreadObject":false
},
{
"objects":1,
"label":"sun.security.provider.Sun",
"objectId":194526,
"objectType":1,
"gCRoot":true,
"shallowSize":96,
"retainedSize":36576,
"percent":9.06528971551606E-5,
"isObjType":true,
"isThreadObject":false
},
{
"objects":66,
"label":"java.lang.invoke.LambdaForm",
"objectId":845843,
"objectType":1,
"gCRoot":true,
"shallowSize":3168,
"retainedSize":28424,
"percent":7.044832537014122E-5,
"isObjType":true,
"isThreadObject":false
},
{
"objects":1,
"label":"java.io.PrintStream",
"objectId":199467,
"objectType":1,
"gCRoot":true,
"shallowSize":32,
"retainedSize":25056,
"percent":6.210080356298403E-5,
"isObjType":true,
"isThreadObject":false
},
{
"objects":1,
"label":"sun.misc.Launcher$ExtClassLoader",
"objectId":201457,
"objectType":1,
"gCRoot":true,
"shallowSize":80,
"retainedSize":18536,
"percent":4.594111170352299E-5,
"isObjType":true,
"isThreadObject":false
},
{
"objects":45,
"label":"java.lang.invoke.MethodTypeForm",
"objectId":845680,
"objectType":1,
"gCRoot":true,
"shallowSize":2520,
"retainedSize":12120,
"percent":3.003918180010243E-5,
"isObjType":true,
"isThreadObject":false
}
],
"groupByClassloader":[
{
"objects":56,
"label":"sun.misc.Launcher$AppClassLoader @ 0xe2523520",
"objectId":838229,
"objectType":2,
"gCRoot":false,
"shallowSize":1439,
"retainedSize":402879431,
"percent":0.9985287517599689,
"isObjType":true,
"isThreadObject":false
},
{
"objects":2389,
"label":"<system class loader>",
"objectId":0,
"objectType":2,
"gCRoot":false,
"shallowSize":62511,
"retainedSize":575071,
"percent":0.00142530217136689,
"isObjType":true,
"isThreadObject":false
},
{
"objects":1,
"label":"sun.misc.Launcher$ExtClassLoader @ 0xe2523580",
"objectId":838230,
"objectType":2,
"gCRoot":false,
"shallowSize":79,
"retainedSize":18535,
"percent":4.593863322317645E-5,
"isObjType":true,
"isThreadObject":false
}
],
"groupByPackage":[
{
"objects":54,
"label":"javassist",
"objectId":-824719032,
"objectType":6,
"gCRoot":false,
"shallowSize":1352,
"retainedSize":398619744,
"percent":0.9879712012480437,
"isObjType":true,
"isThreadObject":false
},
{
"objects":269,
"label":"sun",
"objectId":114252,
"objectType":6,
"gCRoot":false,
"shallowSize":5400,
"retainedSize":4420104,
"percent":0.010955140893676564,
"isObjType":true,
"isThreadObject":false
},
{
"objects":2080,
"label":"java",
"objectId":3254818,
"objectType":6,
"gCRoot":false,
"shallowSize":52456,
"retainedSize":424928,
"percent":0.0010531756966958685,
"isObjType":true,
"isThreadObject":false
},
{
"objects":17,
"label":"jdk",
"objectId":105073,
"objectType":6,
"gCRoot":false,
"shallowSize":528,
"retainedSize":3768,
"percent":9.338913945774419E-6,
"isObjType":true,
"isThreadObject":false
},
{
"objects":4,
"label":"char[]",
"objectId":-1361632968,
"objectType":1,
"gCRoot":false,
"shallowSize":3632,
"retainedSize":3632,
"percent":9.001840618644557E-6,
"isObjType":true,
"isThreadObject":false
},
{
"objects":17,
"label":"int[]",
"objectId":100361105,
"objectType":1,
"gCRoot":false,
"shallowSize":640,
"retainedSize":640,
"percent":1.5862274217875871E-6,
"isObjType":true,
"isThreadObject":false
},
{
"objects":1,
"label":"com",
"objectId":98689,
"objectType":6,
"gCRoot":false,
"shallowSize":8,
"retainedSize":208,
"percent":5.155239120809658E-7,
"isObjType":true,
"isThreadObject":false
},
{
"objects":2,
"label":"byte[]",
"objectId":-1374008726,
"objectType":1,
"gCRoot":false,
"shallowSize":16,
"retainedSize":16,
"percent":3.9655685544689675E-8,
"isObjType":true,
"isThreadObject":false
},
{
"objects":1,
"label":"long[]",
"objectId":-1097129250,
"objectType":1,
"gCRoot":false,
"shallowSize":0,
"retainedSize":0,
"percent":0.0,
"isObjType":true,
"isThreadObject":false
},
{
"objects":1,
"label":"short[]",
"objectId":2067161310,
"objectType":1,
"gCRoot":false,
"shallowSize":0,
"retainedSize":0,
"percent":0.0,
"isObjType":true,
"isThreadObject":false
}
]
}
],
"duplicateClasses":[
{
"label":"java.lang.invoke.LambdaForm$DMH",
"count":43
},
{
"label":"java.lang.invoke.LambdaForm$MH",
"count":30
},
{
"label":"java.lang.invoke.LambdaForm$BMH",
"count":6
}
],
"problemCount":1,
"status":true
},
"status":true,
"graphURL":"http://192.168.1.3:8080/heap-report-wc.jsp?p=S0duTTZwT2NWZDZxTEVUQlhSeGZ6US95eGZVTThtWk5lRnQwdllLdkZxSGEyYllRa0pET1RkdzREdWh3RnQwYTkwb1BkWVM1WC9UM09wSndLUWhDWmJiSjhMS01MSEtxd3ZoK3FrZTVaaDdwdHUyd0FPOTJXd2J3QzBMR0xQVmZMejd2NG5OakEvbUZDTGZ4R2FrUWhTRHZjSnJJK1NoYWdLNEhkS08ydXk0PQ==",
"webReport":"http://192.168.1.3:8080/heap-report-wc.jsp?p=S0duTTZwT2NWZDZxTEVUQlhSeGZ6US95eGZVTThtWk5lRnQwdllLdkZxSGEyYllRa0pET1RkdzREdWh3RnQwYTkwb1BkWVM1WC9UM09wSndLUWhDWmJiSjhMS01MSEtxd3ZoK3FrZTVaaDdwdHUyd0FPOTJXd2J3QzBMR0xQVmZMejd2NG5OakEvbUZDTGZ4R2FrUWhTRHZjSnJJK1NoYWdLNEhkS08ydXk0PQ=="
}
JSON Response Elements
countStringNumber of duplicate strings which is of this particular type:
| Property Name | Data Type | Description |
| graphURL | String | This property will contain a URL. Using this URL you can view the report in the browser. |
| WebReport | String | This property will contain a URL. Using this URL you can view the report in the browser. |
| status | Boolean | The status will be “true” if the API successfully analyzes your heap dump file; otherwise, it will be “false”. |
| troubleshootReport | Object | This object contains the troubleshooting data. |
| troubleshootReport.problemCount | int | This property shows how many problems HeapHero has detected in your heap dump. |
| troubleshootReport.overview | Object | The overview object provides basic information about your heap dump file. |
| troubleshootReport.potentialMemoryLeaks | Object | The Potential Memory Leaks object will return data if the API detects any leaks in your application. |
| troubleshootReport.histograms | Object | The histograms object provides insights into how much memory is being consumed by different types of of objects (classes) and instances of those classes. |
| troubleshootReport.histograms.groupByClass | Object | This object contains histograms aggregated by class. |
| troubleshootReport.histograms.groupBySuperClass | Object | This object contains histograms aggregated by super class. |
| troubleshootReport.histograms.groupByClassLoader | Object | This object contains histograms aggregated by classloader. |
| troubleshootReport.histograms.groupByPackage | Object | This object contains histograms aggregated by package. |
| troubleshootReport.largestObjects | Object | This object shows which objects are responsible for keeping others alive by holding references to them. |
| troubleshootReport.largestObjects.groupByNone | Object | This object contains dominator tree data that is not grouped or categorized based on any specific criteria. |
| troubleshootReport.largestObjects.groupByClass | Object | This object contains dominator tree data that are grouped or categorized based on their class. |
| troubleshootReport.largestObjects.groupByClassLoader | Object | This object contains dominator tree data that are grouped or categorized based on their classloader. |
| troubleshootReport.largestObjects.groupdByPackage | Object | This object contains dominator tree data that are grouped or categorized based on their package. |
| troubleshootReport.gcroots | Object | This object contains objects that are currently reachable and not eligible for garbage collection. |
| troubleshootReport.unreachableObjects | Object | This object contains objects that are no longer accessible from any active path of references originating from GC Roots. These objects are candidates for garbage collection, as they are no longer reachable by the application code. |
| troubleshootReport.duplicateClasses | Object | Displays classes loaded by multiple class loaders. |
XML Response
By default API response in sent in JSON format. However if you would like to get response in XML format, you can pass ‘accept’ HTTP header element with value ‘xml’
curl –X POST -T @./my-heap-dump.hprof "https://api.heaphero.io/analyze-hd-api?apiKey={YOUR_API_KEY}" –-header "accept:xml"
or you can also invoke the API with ‘accept’ element in the URL parameter
curl –X POST -T @./my-heap-dump.hprof "https://api.heaphero.io/analyze-hd-api?apiKey={YOUR_API_KEY}&accept=xml"
