Cache a reference to the OS management bean to avoid repeated lookups.

This commit is contained in:
Jon Chambers 2020-08-07 17:32:37 -04:00 committed by Jon Chambers
parent 035693aa30
commit 647a2aea64
2 changed files with 18 additions and 9 deletions

View File

@ -6,11 +6,16 @@ import com.sun.management.OperatingSystemMXBean;
import java.lang.management.ManagementFactory;
public class CpuUsageGauge implements Gauge<Integer> {
private final OperatingSystemMXBean operatingSystemMXBean;
public CpuUsageGauge() {
this.operatingSystemMXBean = (com.sun.management.OperatingSystemMXBean)
ManagementFactory.getOperatingSystemMXBean();
}
@Override
public Integer getValue() {
OperatingSystemMXBean mbean = (com.sun.management.OperatingSystemMXBean)
ManagementFactory.getOperatingSystemMXBean();
return (int) Math.ceil(mbean.getSystemCpuLoad() * 100);
return (int) Math.ceil(operatingSystemMXBean.getSystemCpuLoad() * 100);
}
}

View File

@ -7,11 +7,15 @@ import java.lang.management.ManagementFactory;
public class FreeMemoryGauge implements Gauge<Long> {
private final OperatingSystemMXBean operatingSystemMXBean;
public FreeMemoryGauge() {
this.operatingSystemMXBean = (com.sun.management.OperatingSystemMXBean)
ManagementFactory.getOperatingSystemMXBean();
}
@Override
public Long getValue() {
OperatingSystemMXBean mbean = (com.sun.management.OperatingSystemMXBean)
ManagementFactory.getOperatingSystemMXBean();
return mbean.getFreePhysicalMemorySize();
return operatingSystemMXBean.getFreePhysicalMemorySize();
}
}
}