| ==================== HISTOGRAM ==================== |
| Histogram. Top 2147483647 by instance count [All-objects] [Only-strong-ref]: |
| 1: [ 18/1.65KB] [ 18/1.65KB] java.lang.Class |
| 2: [ 12/ 192B] [ 9/ 144B] TestString |
| 3: [ 8/ 192B] [ 6/ 144B] TestClassB |
| 4: [ 4/ 128B] [ 3/ 96B] TestClassA |
| 5: [ 3/ 60B] [ 3/ 60B] java.lang.String |
| 6: [ 3/ 100B] [ 3/ 100B] char[] |
| 7: [ 3/ 48B] [ 3/ 48B] MyRef |
| 8: [ 2/ 16B] [ 2/ 16B] java.lang.ref.WeakReference |
| 9: [ 1/ 8B] [ 1/ 8B] java.lang.ref.ReferenceQueue$Lock |
| 10: [ 1/ 16B] [ 1/ 16B] java.util.Arrays$ArrayList |
| 11: [ 1/ 44B] [ 1/ 44B] java.lang.Object[] |
| 12: [ 1/ 8B] [ 1/ 8B] java.lang.ref.ReferenceQueue$Null |
| Total - All: 57 2.46KB 12 classes (Total instances: 57) |
| Total - Strong-ref: 51 2.34KB 12 classes (Total instances: 51) |
| Unreachable objects: 0 0B |
| =================== HEAP SUMMARY ================== |
| Class count: 18 |
| Finalizable size: 0B |
| Soft-reachable size: 0B |
| Weak-reachable size: 128B |
| Reachable only from disposer tree: 0 |
| ======== INSTANCES OF EACH NOMINATED CLASS ======== |
| Nominated classes: |
| --> [8/192B] TestClassB |
| --> [4/128B] TestClassA |
| --> [12/192B] TestString |
| |
| CLASS: TestClassB (8 objects) |
| Root 1: |
| [ 6/ 75%/ 144B] 524B 1 ROOT: Global JNI |
| [ 6/ 75%/ 144B] 524B 1 (root): java.util.Arrays$ArrayList |
| [ 6/ 75%/ 144B] 508B 1 a: java.lang.Object[] |
| [ 2/ 25%/ 48B] 176B 1 +-[]: MyRef |
| [ 2/ 25%/ 48B] 160B 1 | referent: MyRef |
| [ 2/ 25%/ 48B] 144B 1 | referent: MyRef |
| [ 2/ 25%/ 48B] 128B 1 | referent: TestClassA |
| [ 1/ 12%/ 24B] 40B 1 * | +-a2b: TestClassB |
| [ 1/ 12%/ 24B] 40B 1 * | \-a3b: TestClassB |
| [ 2/ 25%/ 48B] 128B 1 +-[]: TestClassA |
| [ 1/ 12%/ 24B] 40B 1 * | +-a2b: TestClassB |
| [ 1/ 12%/ 24B] 40B 1 * | \-a3b: TestClassB |
| [ 2/ 25%/ 48B] 152B 1 \-[]: java.lang.ref.WeakReference |
| [ 2/ 25%/ 48B] 128B 1 ! (weak): TestClassA |
| [ 1/ 12%/ 24B] 40B 1 * +-a2b: TestClassB |
| [ 1/ 12%/ 24B] 40B 1 * \-a3b: TestClassB |
| Root 2: |
| [ 2/ 25%/ 48B] 292B 1 ROOT: Unknown |
| [ 2/ 25%/ 48B] 292B 1 (root): TestClassA |
| [ 1/ 12%/ 24B] 96B 1 * +-a2b: TestClassB |
| [ 1/ 12%/ 24B] 96B 1 * \-a3b: TestClassB |
| |
| CLASS: TestClassA (4 objects) |
| Root 1: |
| [ 3/ 75%/ 96B] 524B 1 ROOT: Global JNI |
| [ 3/ 75%/ 96B] 524B 1 (root): java.util.Arrays$ArrayList |
| [ 3/ 75%/ 96B] 508B 1 a: java.lang.Object[] |
| [ 1/ 25%/ 32B] 176B 1 +-[]: MyRef |
| [ 1/ 25%/ 32B] 160B 1 | referent: MyRef |
| [ 1/ 25%/ 32B] 144B 1 | referent: MyRef |
| [ 1/ 25%/ 32B] 128B 1 * | referent: TestClassA |
| [ 1/ 25%/ 32B] 128B 1 * +-[]: TestClassA |
| [ 1/ 25%/ 32B] 152B 1 \-[]: java.lang.ref.WeakReference |
| [ 1/ 25%/ 32B] 128B 1 * (weak): TestClassA |
| Root 2: |
| [ 1/ 25%/ 32B] 292B 1 ROOT: Unknown |
| [ 1/ 25%/ 32B] 292B 1 * (root): TestClassA |
| |
| CLASS: TestString (12 objects) |
| Root 1: |
| [ 9/ 75%/ 144B] 524B 1 ROOT: Global JNI |
| [ 9/ 75%/ 144B] 524B 1 (root): java.util.Arrays$ArrayList |
| [ 9/ 75%/ 144B] 508B 1 a: java.lang.Object[] |
| [ 3/ 25%/ 48B] 176B 1 +-[]: MyRef |
| [ 3/ 25%/ 48B] 160B 1 | referent: MyRef |
| [ 3/ 25%/ 48B] 144B 1 | referent: MyRef |
| [ 3/ 25%/ 48B] 128B 1 | referent: TestClassA |
| [ 1/ 8%/ 16B] 40B 1 | +-a2b: TestClassB |
| [ 1/ 8%/ 16B] 16B 1 * | | b2string: TestString |
| [ 1/ 8%/ 16B] 16B 1 * | +-a1string: TestString |
| [ 1/ 8%/ 16B] 40B 1 | \-a3b: TestClassB |
| [ 1/ 8%/ 16B] 16B 1 * | b2string: TestString |
| [ 3/ 25%/ 48B] 128B 1 +-[]: TestClassA |
| [ 1/ 8%/ 16B] 40B 1 | +-a2b: TestClassB |
| [ 1/ 8%/ 16B] 16B 1 * | | b2string: TestString |
| [ 1/ 8%/ 16B] 16B 1 * | +-a1string: TestString |
| [ 1/ 8%/ 16B] 40B 1 | \-a3b: TestClassB |
| [ 1/ 8%/ 16B] 16B 1 * | b2string: TestString |
| [ 3/ 25%/ 48B] 152B 1 \-[]: java.lang.ref.WeakReference |
| [ 3/ 25%/ 48B] 128B 1 ! (weak): TestClassA |
| [ 1/ 8%/ 16B] 40B 1 +-a2b: TestClassB |
| [ 1/ 8%/ 16B] 16B 1 * | b2string: TestString |
| [ 1/ 8%/ 16B] 40B 1 +-a3b: TestClassB |
| [ 1/ 8%/ 16B] 16B 1 * | b2string: TestString |
| [ 1/ 8%/ 16B] 16B 1 * \-a1string: TestString |
| Root 2: |
| [ 3/ 25%/ 48B] 292B 1 ROOT: Unknown |
| [ 3/ 25%/ 48B] 292B 1 (root): TestClassA |
| [ 1/ 8%/ 16B] 96B 1 +-a2b: TestClassB |
| [ 1/ 8%/ 16B] 72B 1 * | b2string: TestString |
| [ 1/ 8%/ 16B] 96B 1 +-a3b: TestClassB |
| [ 1/ 8%/ 16B] 72B 1 * | b2string: TestString |
| [ 1/ 8%/ 16B] 68B 1 * \-a1string: TestString |
| |