Warning: session_start(): open(/var/lib/php/sessions/sess_rj29907hjo4fosafuu4n0lqms2, O_RDWR) failed: No space left on device (28) in /var/www/tb-usercake/models/config.php on line 51
Warning: session_start(): Failed to read session data: files (path: /var/lib/php/sessions) in /var/www/tb-usercake/models/config.php on line 51
!7
lib 1400078 // heap analyzer
import org.netbeans.lib.profiler.heap.*;
import java.lang.reflect.Field;
static Heap heap;
sbool fake = true;
p-experiment {
File f = stefansOS_heapDumpFile();
print("Loading heap dump (" + toM(fileSize(f)) + " M)...");
heap = HeapFactory.createHeap(f);
print("Got heap.");
L classes = heap.getAllClasses();
print("Got " + n2(classes, "class", "classes"));
//pnl(sortedIC(mapMethod(classes, 'getName)));
L classLoaderClasses = filter(classes, func(JavaClass c) -> bool { startsWithOneOf(c.getName(), "main$JavaXClassLoader", "x30$JavaXClassLoader") });
print("Got " + n2(classLoaderClasses, "class loader class", "class loader classes"));
L classLoaders = concatLists(mapMethod('getInstances, classLoaderClasses));
print("Got " + n2(classLoaders, "class loader"));
L defunctClassLoaders = filter(classLoaders, func(Instance cl) { isTrue(cl.getValueOfField('defunct)) });
print("Got " + n2(defunctClassLoaders, "defunct class loader"));
if (fake && empty(defunctClassLoaders)) defunctClassLoaders = classLoaders;
print("Calculating GC roots...");
for (Instance cl : defunctClassLoaders) {
Instance i = cl.getNearestGCRootPointer();
print("i => " + i);
}
}