From 945a7071adc992f6b6da1fe43aed57ada86f45fc Mon Sep 17 00:00:00 2001 From: Chris Laprun Date: Fri, 29 Dec 2023 19:04:01 +0100 Subject: [PATCH] refactor: optimize line splitting and comment checking --- .../sensors/macos/powermetrics/MacOSPowermetricsSensor.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/server/src/main/java/io/github/metacosm/power/sensors/macos/powermetrics/MacOSPowermetricsSensor.java b/server/src/main/java/io/github/metacosm/power/sensors/macos/powermetrics/MacOSPowermetricsSensor.java index a085e39f..818d17c1 100644 --- a/server/src/main/java/io/github/metacosm/power/sensors/macos/powermetrics/MacOSPowermetricsSensor.java +++ b/server/src/main/java/io/github/metacosm/power/sensors/macos/powermetrics/MacOSPowermetricsSensor.java @@ -14,6 +14,7 @@ import java.util.HashSet; import java.util.Map; import java.util.concurrent.TimeUnit; +import java.util.regex.Pattern; public class MacOSPowermetricsSensor implements PowerSensor { public static final String CPU = "CPU"; @@ -110,11 +111,12 @@ private static class ProcessRecord { final double cpu; final double gpu; final String pid; + private static final Pattern spaces = Pattern.compile("\\s+"); public ProcessRecord(String line) throws IllegalArgumentException { //Name ID CPU ms/s samp ms/s User% Deadlines (<2 ms, 2-5 ms) Wakeups (Intr, Pkg idle) GPU ms/s //iTerm2 1008 46.66 46.91 83.94 0.00 0.00 30.46 0.00 0.00 - final var processData = line.split("\\s+"); + final var processData = spaces.split(line, 10); if (processData.length != 10) { throw new IllegalArgumentException("Received line doesn't conform to expected format: " + line); } @@ -149,7 +151,7 @@ Measures extractPowerMeasure(InputStream powerMeasureInput, Long tick) { continue; } - if (line.isEmpty() || line.startsWith("*")) { + if (line.isEmpty() || line.charAt(0) == '*') { continue; }