/** * @return 20% of the maximum heap size limited to 512 MB (bytes) */ public static long calculateMinFreeMemory() { Runtime runtime = Runtime.getRuntime(); long minFree = (long) (runtime.maxMemory() * 0.2); return Math.min(minFree, 512 * 1024L * 1024L); }
Runtime rt = Runtime.getRuntime(); long maxMemory = rt.maxMemory(); Log.v("onCreate", "maxMemory:" + Long.toString(maxMemory));
public static boolean isFreeMemoryAvailable() { Runtime runtime = Runtime.getRuntime(); long maxMemory = runtime.maxMemory(); long totalFree = runtime.freeMemory() + (maxMemory - runtime.totalMemory()); return totalFree > MIN_FREE_MEMORY; }
public long getMaxHeapSizeBytes() { return Runtime.getRuntime().maxMemory(); }
@Override public Status check() { Runtime runtime = Runtime.getRuntime(); long freeMemory = runtime.freeMemory(); long totalMemory = runtime.totalMemory(); long maxMemory = runtime.maxMemory(); boolean ok = (maxMemory - (totalMemory - freeMemory) > 2048); // Alarm when spare memory < 2M String msg = "max:" + (maxMemory / 1024 / 1024) + "M,total:" + (totalMemory / 1024 / 1024) + "M,used:" + ((totalMemory / 1024 / 1024) - (freeMemory / 1024 / 1024)) + "M,free:" + (freeMemory / 1024 / 1024) + "M"; return new Status(ok ? Status.Level.OK : Status.Level.WARN, msg); }
@Override public Status check() { Runtime runtime = Runtime.getRuntime(); long freeMemory = runtime.freeMemory(); long totalMemory = runtime.totalMemory(); long maxMemory = runtime.maxMemory(); boolean ok = (maxMemory - (totalMemory - freeMemory) > 2048); // Alarm when spare memory < 2M String msg = "max:" + (maxMemory / 1024 / 1024) + "M,total:" + (totalMemory / 1024 / 1024) + "M,used:" + ((totalMemory / 1024 / 1024) - (freeMemory / 1024 / 1024)) + "M,free:" + (freeMemory / 1024 / 1024) + "M"; return new Status(ok ? Status.Level.OK : Status.Level.WARN, msg); }
private double determineGoodBufferSize( double atLeast ) { double heapHint = Runtime.getRuntime().maxMemory() / (1024 * 1024 * 14); double result = Math.max( atLeast, heapHint ); return Math.min( result, 700 ); }
public int getMaxAvailableMemory(boolean accurate) { if (accurate) { System.gc(); } return (int) ((r.maxMemory() - r.totalMemory() + r.freeMemory()) / 1024); }
/** * Returns the amount of available memory (free memory plus never allocated memory). */ public static long availableMemory() { return Runtime.getRuntime().freeMemory() + (Runtime.getRuntime().maxMemory() - Runtime.getRuntime().totalMemory()); }
/** * Returns the amount of available memory in percents. */ public static float availableMemoryPercent() { return availableMemory() * 100.0f / Runtime.getRuntime().maxMemory(); }
private static void verifyJvmOptions() { long heap = Runtime.getRuntime().maxMemory() >> 20; Assert.assertTrue("Insufficient java heap space " + heap + "mb - set JVM option: -Xmx" + MINIMUM_HEAP_SIZE_MB + "m", heap > MINIMUM_HEAP_SIZE_MB - 50); }
public void update() { long used = runtime.totalMemory() - runtime.freeMemory(); int usedKB = (int) (used / 1024); setValue(usedKB); setString(String.format(textFormat, (usedKB / TWO_TO_20), maxGB)); if ((used + Utils.MIN_FREE_MEMORY) > runtime.maxMemory()) { setForeground(RED); } else { setForeground(GREEN); } }
@Inject public LocalMemoryManager(NodeMemoryConfig config, ReservedSystemMemoryConfig systemMemoryConfig) { requireNonNull(config, "config is null"); long availableMemory = Runtime.getRuntime().maxMemory(); if (config.isLegacySystemPoolEnabled()) { configureLegacyMemoryPools(config, systemMemoryConfig, availableMemory); } else { configureMemoryPools(config, availableMemory); } }
private static String memoryStats() { Runtime runtime = Runtime.getRuntime(); return format( "Memory[used:%s, free:%s, total:%s, max:%s]", Format.bytes( runtime.totalMemory() - runtime.freeMemory() ), Format.bytes( runtime.freeMemory() ), Format.bytes( runtime.totalMemory() ), Format.bytes( runtime.maxMemory() ) ); }
public static String memoryInfo() { Runtime runtime = Runtime.getRuntime(); long maxMemory = runtime.maxMemory(); long allocatedMemory = runtime.totalMemory(); long freeMemory = runtime.freeMemory(); return "heap: " + format(allocatedMemory - freeMemory) + ", allocated: " + format(allocatedMemory) + ", free: " + format(freeMemory) + ", total free: " + format(freeMemory + maxMemory - allocatedMemory) + ", max: " + format(maxMemory); }
@Test public void testUnregisterNotLeaking() { int heapMBytes = (int) (Runtime.getRuntime().maxMemory() / (1024L * 1024L)); for (int i = 0; i < heapMBytes * 2; i++) { @SuppressWarnings("unused") EventBusBasicTest subscriber = new EventBusBasicTest() { byte[] expensiveObject = new byte[1024 * 1024]; }; eventBus.register(subscriber); eventBus.unregister(subscriber); log("Iteration " + i + " / max heap: " + heapMBytes); } }
private static void verifyJvmOptions() { final long heap = Runtime.getRuntime().maxMemory() >> 20; Assert.assertTrue("Insufficient java heap space " + heap + "mb - set JVM option: -Xmx" + MINIMUM_HEAP_SIZE_MB + "m", heap > MINIMUM_HEAP_SIZE_MB - 50); }
public void dumpConfiguration() { checkPageSize( config ); String pageCacheMemory = config.get( pagecache_memory ); long totalPhysicalMemory = OsBeanUtil.getTotalPhysicalMemory(); String totalPhysicalMemMb = (totalPhysicalMemory == OsBeanUtil.VALUE_UNAVAILABLE) ? "?" : "" + ByteUnit.Byte.toMebiBytes( totalPhysicalMemory ); long maxVmUsageMb = ByteUnit.Byte.toMebiBytes( Runtime.getRuntime().maxMemory() ); String msg = "Physical mem: " + totalPhysicalMemMb + " MiB," + " Heap size: " + maxVmUsageMb + " MiB," + " Page cache: " + pageCacheMemory + "."; log.info( msg ); }
public HeapUsageBar() { this.textFormat = NLS.str("heapUsage.text"); setBorderPainted(false); setStringPainted(true); setValue(10); int maxKB = (int) (runtime.maxMemory() / 1024); setMaximum(maxKB); maxGB = maxKB / TWO_TO_20; update(); timer = new Timer(2000, this); addMouseListener(new MouseAdapter() { @Override public void mouseClicked(MouseEvent e) { Runtime.getRuntime().gc(); update(); if (LOG.isDebugEnabled()) { LOG.debug("Memory used: {}", Utils.memoryInfo()); } } }); }
@Test public void testUnregisterNotLeaking() { int heapMBytes = (int) (Runtime.getRuntime().maxMemory() / (1024L * 1024L)); for (int i = 0; i < heapMBytes * 2; i++) { @SuppressWarnings("unused") EventBusBasicTest subscriber = new EventBusBasicTest() { byte[] expensiveObject = new byte[1024 * 1024]; }; eventBus.register(subscriber); eventBus.unregister(subscriber); log("Iteration " + i + " / max heap: " + heapMBytes); } }