From 647a2aea646dd45a6563f7db64e29235178d36dc Mon Sep 17 00:00:00 2001 From: Jon Chambers Date: Fri, 7 Aug 2020 17:32:37 -0400 Subject: [PATCH] Cache a reference to the OS management bean to avoid repeated lookups. --- .../textsecuregcm/metrics/CpuUsageGauge.java | 13 +++++++++---- .../textsecuregcm/metrics/FreeMemoryGauge.java | 14 +++++++++----- 2 files changed, 18 insertions(+), 9 deletions(-) diff --git a/service/src/main/java/org/whispersystems/textsecuregcm/metrics/CpuUsageGauge.java b/service/src/main/java/org/whispersystems/textsecuregcm/metrics/CpuUsageGauge.java index 77a640163..3deb90b86 100644 --- a/service/src/main/java/org/whispersystems/textsecuregcm/metrics/CpuUsageGauge.java +++ b/service/src/main/java/org/whispersystems/textsecuregcm/metrics/CpuUsageGauge.java @@ -6,11 +6,16 @@ import com.sun.management.OperatingSystemMXBean; import java.lang.management.ManagementFactory; public class CpuUsageGauge implements Gauge { + + 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); } } diff --git a/service/src/main/java/org/whispersystems/textsecuregcm/metrics/FreeMemoryGauge.java b/service/src/main/java/org/whispersystems/textsecuregcm/metrics/FreeMemoryGauge.java index ef2232892..ce8bfbf0a 100644 --- a/service/src/main/java/org/whispersystems/textsecuregcm/metrics/FreeMemoryGauge.java +++ b/service/src/main/java/org/whispersystems/textsecuregcm/metrics/FreeMemoryGauge.java @@ -7,11 +7,15 @@ import java.lang.management.ManagementFactory; public class FreeMemoryGauge implements Gauge { + 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(); } -} \ No newline at end of file +}