/** * use internal product calls to determine who the orphans are and log them */ public static void dumpOffHeapOrphans() { MemoryAllocator store = SimpleMemoryAllocatorImpl.getAllocator(); if (store == null) { logger.info("Not dumping off-heap orphans, offHeapStore is null"); return; } MemoryInspector inspector = store.getMemoryInspector(); List<MemoryBlock> orphans = inspector.getOrphans(); for (MemoryBlock block : orphans) { logger.error("Orphaned MemoryBlock: " + block.toString()); } }
MemoryInspector inspector = allocator.getMemoryInspector(); assertNotNull(inspector); inspector.createInspectionSnapshot(); try { MemoryBlock firstBlock = inspector.getFirstBlock(); assertNotNull(firstBlock); assertEquals(1024*1024*2, firstBlock.getBlockSize()); assertFalse(firstBlock.isSerialized()); } finally { inspector.clearInspectionSnapshot(); inspector.createInspectionSnapshot(); try { MemoryBlock firstBlock = inspector.getFirstBlock(); assertEquals(MemoryBlock.State.UNUSED, firstBlock.getState()); i++; assertEquals("All blocks: "+inspector.getAllBlocks(), expected.size(), i); } finally { inspector.clearInspectionSnapshot();
/** use internal product calls to determine who the orphans are and log them * */ public static void dumpOffHeapOrphans() { MemoryAllocator store = SimpleMemoryAllocatorImpl.getAllocator(); if (store == null) { Log.getLogWriter().info("Not dumping off-heap orphans, offHeapStore is " + store); return; } MemoryInspector inspector = store.getMemoryInspector(); List<MemoryBlock> orphans = inspector.getOrphans(); for (MemoryBlock block : orphans) { Log.getLogWriter().error("Orphaned MemoryBlock: " + block.toString()); } }