package com.onaro.util; import java.lang.management.ManagementFactory; import java.lang.management.MemoryUsage; import com.onaro.commons.util.Unit; /** * Utility class to provide easy access to information from the java.lang.management classes. * */ public class ManagementUtil { public static long getTotalMemoryUsage(Unit unit) { return Unit.BYTE.convertTo(getHeapMemoryUsage().getUsed() + getNonHeapMemoryUsage().getUsed(), unit); } public static long getTotalMaxUsage(Unit unit) { return Unit.BYTE.convertTo(getHeapMemoryUsage().getMax() + getNonHeapMemoryUsage().getMax(), unit); } public static MemoryUsage getHeapMemoryUsage() { return ManagementFactory.getMemoryMXBean().getHeapMemoryUsage(); } public static MemoryUsage getNonHeapMemoryUsage() { return ManagementFactory.getMemoryMXBean().getNonHeapMemoryUsage(); } public static long getUptime(Unit unit) { return Unit.MILLISECOND.convertTo(ManagementFactory.getRuntimeMXBean().getUptime(), unit); } public static long getStartTime(Unit unit) { return Unit.MILLISECOND.convertTo(ManagementFactory.getRuntimeMXBean().getStartTime(), unit); } }