+++ /dev/null
-package jalview.bin;
-
-import java.lang.management.ManagementFactory;
-import java.lang.management.OperatingSystemMXBean;
-
-public class MemorySetting
-{
- public static final long leaveFreeMinMemory = 536870912; // 0.5 GB
-
- public static final long applicationMinMemory = 536870912; // 0.5 GB
-
- protected static long getPhysicalMemory()
- {
- final OperatingSystemMXBean o = ManagementFactory
- .getOperatingSystemMXBean();
-
- try
- {
- if (o instanceof com.sun.management.OperatingSystemMXBean)
- {
- final com.sun.management.OperatingSystemMXBean osb = (com.sun.management.OperatingSystemMXBean) o;
- return osb.getTotalPhysicalMemorySize();
- }
- } catch (NoClassDefFoundError e)
- {
- // com.sun.management.OperatingSystemMXBean doesn't exist in this JVM
- System.out.println("No com.sun.management.OperatingSystemMXBean");
- }
-
- // We didn't get a com.sun.management.OperatingSystemMXBean.
- return -1;
- }
-
- public static long memPercent(int percent)
- {
- long memPercent = -1;
-
- long physicalMem = getPhysicalMemory();
- if (physicalMem > applicationMinMemory)
- {
- // try and set at least applicationMinMemory and thereafter ensure
- // leaveFreeMinMemory is left for the OS
- memPercent = Math.max(applicationMinMemory,
- physicalMem - Math.max(physicalMem * (100 - percent) / 100,
- leaveFreeMinMemory));
- }
-
- return memPercent;
- }
-
-}