/** * 返回Java虚拟机内存系统相关属性 * * @return {@link MemoryMXBean} * @since 4.1.4 */ public static MemoryMXBean getMemoryMXBean() { return ManagementFactory.getMemoryMXBean(); }
/** * 返回Java虚拟机内存系统相关属性 * * @return {@link MemoryMXBean} * @since 4.1.4 */ public static MemoryMXBean getMemoryMXBean() { return ManagementFactory.getMemoryMXBean(); }
@Override public MemoryMXBean run() throws Exception { return ManagementFactory.getMemoryMXBean(); } });
private static long determineHeapSize() { return ManagementFactory.getMemoryMXBean().getHeapMemoryUsage().getUsed(); }
public static double getJVMHeapMemory() { MemoryMXBean memoryMXBean = ManagementFactory.getMemoryMXBean(); MemoryUsage memoryUsage = memoryMXBean.getHeapMemoryUsage(); return (double) memoryUsage.getUsed(); }
static long usedMemoryNow() { MemoryMXBean memoryMXBean = ManagementFactory.getMemoryMXBean(); MemoryUsage heapMemoryUsage = memoryMXBean.getHeapMemoryUsage(); return heapMemoryUsage.getUsed(); }
@Inject public StatusResource(NodeVersion nodeVersion, NodeInfo nodeInfo, ServerConfig serverConfig, LocalMemoryManager memoryManager) { this.nodeInfo = requireNonNull(nodeInfo, "nodeInfo is null"); this.version = requireNonNull(nodeVersion, "nodeVersion is null"); this.environment = requireNonNull(nodeInfo, "nodeInfo is null").getEnvironment(); this.coordinator = requireNonNull(serverConfig, "serverConfig is null").isCoordinator(); this.memoryManager = requireNonNull(memoryManager, "memoryManager is null"); this.memoryMXBean = ManagementFactory.getMemoryMXBean(); this.logicalCores = Runtime.getRuntime().availableProcessors(); if (ManagementFactory.getOperatingSystemMXBean() instanceof OperatingSystemMXBean) { // we want the com.sun.management sub-interface of java.lang.management.OperatingSystemMXBean this.operatingSystemMXBean = (OperatingSystemMXBean) ManagementFactory.getOperatingSystemMXBean(); } }
@Override public Map<String, Object> asJson() { MemoryMXBean memoryMXBean = ManagementFactory.getMemoryMXBean(); LinkedHashMap<String, Object> json = new LinkedHashMap<>(); json.put("Heap", formatInJson(memoryMXBean.getHeapMemoryUsage())); json.put("Non Heap", formatInJson(memoryMXBean.getNonHeapMemoryUsage())); json.put("Pending Finalization", memoryMXBean.getObjectPendingFinalizationCount()); return json; }
@Test public void replayNoLeak() throws Exception { System.gc(); Thread.sleep(100); long start = ManagementFactory.getMemoryMXBean().getHeapMemoryUsage().getUsed(); source = Observable.fromCallable(new Callable<Object>() { @Override public Object call() throws Exception { return new byte[100 * 1000 * 1000]; } }) .replay(1) .refCount(); source.subscribe(); System.gc(); Thread.sleep(100); long after = ManagementFactory.getMemoryMXBean().getHeapMemoryUsage().getUsed(); source = null; assertTrue(String.format("%,3d -> %,3d%n", start, after), start + 20 * 1000 * 1000 > after); }
@Test public void replayNoLeak() throws Exception { System.gc(); Thread.sleep(100); long start = ManagementFactory.getMemoryMXBean().getHeapMemoryUsage().getUsed(); source = Flowable.fromCallable(new Callable<Object>() { @Override public Object call() throws Exception { return new byte[100 * 1000 * 1000]; } }) .replay(1) .refCount(); source.subscribe(); System.gc(); Thread.sleep(100); long after = ManagementFactory.getMemoryMXBean().getHeapMemoryUsage().getUsed(); source = null; assertTrue(String.format("%,3d -> %,3d%n", start, after), start + 20 * 1000 * 1000 > after); }
@Test public void publishNoLeak() throws Exception { System.gc(); Thread.sleep(100); long start = ManagementFactory.getMemoryMXBean().getHeapMemoryUsage().getUsed(); source = Observable.fromCallable(new Callable<Object>() { @Override public Object call() throws Exception { throw new ExceptionData(new byte[100 * 1000 * 1000]); } }) .publish() .refCount(); source.subscribe(Functions.emptyConsumer(), Functions.emptyConsumer()); System.gc(); Thread.sleep(100); long after = ManagementFactory.getMemoryMXBean().getHeapMemoryUsage().getUsed(); source = null; assertTrue(String.format("%,3d -> %,3d%n", start, after), start + 20 * 1000 * 1000 > after); }
@Test public void replayNoLeak2() throws Exception { System.gc(); Thread.sleep(100); long start = ManagementFactory.getMemoryMXBean().getHeapMemoryUsage().getUsed(); source = Observable.fromCallable(new Callable<Object>() { @Override public Object call() throws Exception { return new byte[100 * 1000 * 1000]; } }).concatWith(Observable.never()) .replay(1) .refCount(); Disposable d1 = source.subscribe(); Disposable d2 = source.subscribe(); d1.dispose(); d2.dispose(); d1 = null; d2 = null; System.gc(); Thread.sleep(100); long after = ManagementFactory.getMemoryMXBean().getHeapMemoryUsage().getUsed(); source = null; assertTrue(String.format("%,3d -> %,3d%n", start, after), start + 20 * 1000 * 1000 > after); }
@Test public void publishNoLeak() throws Exception { System.gc(); Thread.sleep(100); long start = ManagementFactory.getMemoryMXBean().getHeapMemoryUsage().getUsed(); source = Flowable.fromCallable(new Callable<Object>() { @Override public Object call() throws Exception { throw new ExceptionData(new byte[100 * 1000 * 1000]); } }) .publish() .refCount(); source.subscribe(Functions.emptyConsumer(), Functions.emptyConsumer()); System.gc(); Thread.sleep(100); long after = ManagementFactory.getMemoryMXBean().getHeapMemoryUsage().getUsed(); source = null; assertTrue(String.format("%,3d -> %,3d%n", start, after), start + 20 * 1000 * 1000 > after); }
@Test public void publishNoLeak2() throws Exception { System.gc(); Thread.sleep(100); long start = ManagementFactory.getMemoryMXBean().getHeapMemoryUsage().getUsed(); source = Observable.fromCallable(new Callable<Object>() { @Override public Object call() throws Exception { return new byte[100 * 1000 * 1000]; } }).concatWith(Observable.never()) .publish() .refCount(); Disposable d1 = source.test(); Disposable d2 = source.test(); d1.dispose(); d2.dispose(); d1 = null; d2 = null; System.gc(); Thread.sleep(100); long after = ManagementFactory.getMemoryMXBean().getHeapMemoryUsage().getUsed(); source = null; assertTrue(String.format("%,3d -> %,3d%n", start, after), start + 20 * 1000 * 1000 > after); }
@Test public void replayNoLeak2() throws Exception { System.gc(); Thread.sleep(100); long start = ManagementFactory.getMemoryMXBean().getHeapMemoryUsage().getUsed(); source = Flowable.fromCallable(new Callable<Object>() { @Override public Object call() throws Exception { return new byte[100 * 1000 * 1000]; } }).concatWith(Flowable.never()) .replay(1) .refCount(); Disposable d1 = source.subscribe(); Disposable d2 = source.subscribe(); d1.dispose(); d2.dispose(); d1 = null; d2 = null; System.gc(); Thread.sleep(100); long after = ManagementFactory.getMemoryMXBean().getHeapMemoryUsage().getUsed(); source = null; assertTrue(String.format("%,3d -> %,3d%n", start, after), start + 20 * 1000 * 1000 > after); }
@Test public void publishNoLeak2() throws Exception { System.gc(); Thread.sleep(100); long start = ManagementFactory.getMemoryMXBean().getHeapMemoryUsage().getUsed(); source = Flowable.fromCallable(new Callable<Object>() { @Override public Object call() throws Exception { return new byte[100 * 1000 * 1000]; } }).concatWith(Flowable.never()) .publish() .refCount(); Disposable d1 = source.test(); Disposable d2 = source.test(); d1.dispose(); d2.dispose(); d1 = null; d2 = null; System.gc(); Thread.sleep(100); long after = ManagementFactory.getMemoryMXBean().getHeapMemoryUsage().getUsed(); source = null; assertTrue(String.format("%,3d -> %,3d%n", start, after), start + 20 * 1000 * 1000 > after); }
final MemoryMXBean memoryMXBean = ManagementFactory.getMemoryMXBean(); MemoryUsage memHeap = memoryMXBean.getHeapMemoryUsage(); long initial = memHeap.getUsed();
final MemoryMXBean memoryMXBean = ManagementFactory.getMemoryMXBean(); MemoryUsage memHeap = memoryMXBean.getHeapMemoryUsage(); long initial = memHeap.getUsed();
final MemoryMXBean memoryMXBean = ManagementFactory.getMemoryMXBean(); MemoryUsage memHeap = memoryMXBean.getHeapMemoryUsage(); long initial = memHeap.getUsed();
@BeforeClass public static void setUpBeforeClass() throws Exception { conf.setBoolean(MemStoreLAB.USEMSLAB_KEY, true); conf.setFloat(MemStoreLAB.CHUNK_POOL_MAXSIZE_KEY, 0.2f); chunkPoolDisabledBeforeTest = ChunkCreator.chunkPoolDisabled; ChunkCreator.chunkPoolDisabled = false; long globalMemStoreLimit = (long) (ManagementFactory.getMemoryMXBean().getHeapMemoryUsage() .getMax() * MemorySizeUtil.getGlobalMemStoreHeapPercent(conf, false)); chunkCreator = ChunkCreator.initialize(MemStoreLABImpl.CHUNK_SIZE_DEFAULT, false, globalMemStoreLimit, 0.2f, MemStoreLAB.POOL_INITIAL_SIZE_DEFAULT, null); assertTrue(chunkCreator != null); }