public List<Instance> getBiggestObjectsByRetainedSize(int number) { long[] ids; List<Instance> bigObjects = new ArrayList<Instance>(number); computeRetainedSize(); ids = idToOffsetMap.getBiggestObjectsByRetainedSize(number); for (int i=0;i<ids.length;i++) { bigObjects.add(getInstanceByID(ids[i])); } return bigObjects; }
long getRetainedSize(Instance instance) { computeRetainedSize(); return idToOffsetMap.get(instance.getInstanceId()).getRetainedSize(); }
synchronized void computeRetainedSizeByClass() { if (retainedSizeByClassComputed) { return; } computeRetainedSize(); long[] offset = new long[] { allInstanceDumpBounds.startOffset }; while (offset[0] < allInstanceDumpBounds.endOffset) { int instanceIdOffset = 0; long start = offset[0]; int tag = readDumpTag(offset); if (tag == INSTANCE_DUMP) { instanceIdOffset = 1; } else if (tag == OBJECT_ARRAY_DUMP) { instanceIdOffset = 1; } else if (tag == PRIMITIVE_ARRAY_DUMP) { instanceIdOffset = 1; } else { continue; } long instanceId = dumpBuffer.getID(start + instanceIdOffset); Instance i = getInstanceByID(instanceId); ClassDump javaClass = (ClassDump) i.getJavaClass(); if (javaClass != null && !domTree.hasInstanceInChain(tag, i)) { javaClass.addSizeForInstance(i); } } // all done, release domTree domTree = null; retainedSizeByClassComputed = true; }
public List getBiggestObjectsByRetainedSize(int number) { long[] ids; List bigObjects = new ArrayList(number); computeRetainedSize(); ids = idToOffsetMap.getBiggestObjectsByRetainedSize(number); for (int i=0;i<ids.length;i++) { bigObjects.add(getInstanceByID(ids[i])); } return bigObjects; }
public List<Instance> getBiggestObjectsByRetainedSize(int number) { long[] ids; List<Instance> bigObjects = new ArrayList<Instance>(number); computeRetainedSize(); ids = idToOffsetMap.getBiggestObjectsByRetainedSize(number); for (int i=0;i<ids.length;i++) { bigObjects.add(getInstanceByID(ids[i])); } return bigObjects; }
long getRetainedSize(Instance instance) { computeRetainedSize(); return idToOffsetMap.get(instance.getInstanceId()).getRetainedSize(); }
long getRetainedSize(Instance instance) { computeRetainedSize(); return idToOffsetMap.get(instance.getInstanceId()).getRetainedSize(); }
synchronized void computeRetainedSizeByClass() { if (retainedSizeByClassComputed) { return; } computeRetainedSize(); long[] offset = new long[] { allInstanceDumpBounds.startOffset }; while (offset[0] < allInstanceDumpBounds.endOffset) { int instanceIdOffset = 0; long start = offset[0]; int tag = readDumpTag(offset); if (tag == INSTANCE_DUMP) { instanceIdOffset = 1; } else if (tag == OBJECT_ARRAY_DUMP) { instanceIdOffset = 1; } else if (tag == PRIMITIVE_ARRAY_DUMP) { instanceIdOffset = 1; } else { continue; } long instanceId = dumpBuffer.getID(start + instanceIdOffset); Instance i = getInstanceByID(instanceId); ClassDump javaClass = (ClassDump) i.getJavaClass(); if (javaClass != null && !domTree.hasInstanceInChain(tag, i)) { javaClass.addSizeForInstance(i); } } // all done, release domTree domTree = null; retainedSizeByClassComputed = true; }
synchronized void computeRetainedSizeByClass() { if (retainedSizeByClassComputed) { return; } computeRetainedSize(); long[] offset = new long[] { allInstanceDumpBounds.startOffset }; while (offset[0] < allInstanceDumpBounds.endOffset) { int instanceIdOffset = 0; long start = offset[0]; int tag = readDumpTag(offset); if (tag == INSTANCE_DUMP) { instanceIdOffset = 1; } else if (tag == OBJECT_ARRAY_DUMP) { instanceIdOffset = 1; } else if (tag == PRIMITIVE_ARRAY_DUMP) { instanceIdOffset = 1; } else { continue; } long instanceId = dumpBuffer.getID(start + instanceIdOffset); Instance i = getInstanceByID(instanceId); ClassDump javaClass = (ClassDump) i.getJavaClass(); if (javaClass != null && !domTree.hasInstanceInChain(tag, i)) { javaClass.addSizeForInstance(i); } } // all done, release domTree domTree = null; retainedSizeByClassComputed = true; }