HEAP DUMP ANALYSIS API

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:

  1. 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.
  2. POST HTTP request to https://api.heaphero.io/analyze-hd-api?apiKey={YOUR_API_KEY}
  3. The body of the HTTP request should contain the Heap Dump that needs to be analyzed.
  4. 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 NameData TypeDescription
graphURLStringThis property will contain a URL. Using this URL you can view the report in the browser.
WebReportStringThis property will contain a URL. Using this URL you can view the report in the browser.
statusBooleanThe status will be “true” if the API successfully analyzes your heap dump file; otherwise, it will be “false”.
troubleshootReportObjectThis object contains the troubleshooting data.
troubleshootReport.problemCountintThis property shows how many problems HeapHero has detected in your heap dump.
troubleshootReport.overviewObjectThe overview object provides basic information about your heap dump file.
troubleshootReport.potentialMemoryLeaksObjectThe Potential Memory Leaks object will return data if the API detects any leaks in your application.
troubleshootReport.histogramsObjectThe 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.groupByClassObjectThis object contains histograms aggregated by class.
troubleshootReport.histograms.groupBySuperClassObjectThis object contains histograms aggregated by super class.
troubleshootReport.histograms.groupByClassLoaderObjectThis object contains histograms aggregated by classloader.
troubleshootReport.histograms.groupByPackageObjectThis object contains histograms aggregated by package.
troubleshootReport.largestObjectsObjectThis object shows which objects are responsible for keeping others alive by holding references to them.
troubleshootReport.largestObjects.groupByNoneObjectThis object contains dominator tree data that is not grouped or categorized based on any specific criteria.
troubleshootReport.largestObjects.groupByClassObjectThis object contains dominator tree data that are grouped or categorized based on their class.
troubleshootReport.largestObjects.groupByClassLoaderObject This object contains dominator tree data that are grouped or categorized based on their classloader.
troubleshootReport.largestObjects.groupdByPackageObjectThis object contains dominator tree data that are grouped or categorized based on their package.
troubleshootReport.gcrootsObjectThis object contains objects that are currently reachable and not eligible for garbage collection.
troubleshootReport.unreachableObjectsObjectThis 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.duplicateClassesObjectDisplays 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"

37 thoughts on “HEAP DUMP ANALYSIS API

Add yours

  1. Pingback: Automating – OutOfMemoryError troubleshooting | Dm4r
  2. Pingback: How is HeapHero different? | Dm4r
  3. Pingback: Micrometics para tubería CI/CD • ARUF
  4. Pingback: Automatisieren – OutOfMemoryError Fehlerbehebung | Komentor • Wons
  5. Pingback: Mikrometik für CI/CD-Pipeline | Komentor • Wons
  6. Pingback: Mikrometrik für CI/CD-Pipeline | Komentor • Wons
  7. Pingback: Automatización – Solución de problemas de OutOfMemoryError • ARUF
  8. Pingback: Автоматизация – Устранение неполадок OutOfMemoryError | Кодементор • ARUF
  9. Pingback: Автоматизация – Устранение неполадок OutOfMemoryError | Кодементор • Wonz
  10. Pingback: Микрометрика для конвейера CI/CD | Кодементор • ARUF
  11. Pingback: Микрометрика для конвейера CI/CD | Кодементор • Wonz
  12. Pingback: Микрометрика для конвейера CI/CD | Кодементор • Wonz
  13. Pingback: Micrometría para canalización de CI/CD • ARUF

Share your Thoughts!

Up ↑

Index

Discover more from HeapHero – Java & Android Heap Dump Analyzer

Subscribe now to keep reading and get access to the full archive.

Continue reading