From e797a57a060b3067dab8837f453042fb6c9d258f Mon Sep 17 00:00:00 2001 From: Robert Butora <robert.butora@inaf.it> Date: Tue, 13 Aug 2024 10:51:35 +0200 Subject: [PATCH] adds soda exec time meas (System.nanoTime() based) --- .../servlet/src/main/java/ops/cli/ExecCmd.java | 16 ++++++++++++++++ .../src/main/java/webapi/ServletCutout.java | 2 ++ 2 files changed, 18 insertions(+) diff --git a/data-access/servlet/src/main/java/ops/cli/ExecCmd.java b/data-access/servlet/src/main/java/ops/cli/ExecCmd.java index 8255b27..43f7692 100644 --- a/data-access/servlet/src/main/java/ops/cli/ExecCmd.java +++ b/data-access/servlet/src/main/java/ops/cli/ExecCmd.java @@ -73,6 +73,8 @@ class ExecCmd LOGGER.info("CMD: " + Arrays.toString(cmd)); + long start_nsec = System.nanoTime(); + Runtime rt = Runtime.getRuntime(); Process proc = rt.exec(cmd); @@ -82,6 +84,8 @@ class ExecCmd // any output? StreamGobbler outputGobbler = new StreamGobbler(proc.getInputStream(), "OUTPUT", outputStream); + long meas1_nsec = System.nanoTime(); + // kick them off outputGobbler.start(); errorGobbler.start(); @@ -89,9 +93,21 @@ class ExecCmd outputGobbler.join(); errorGobbler.join(); + long meas2_nsec = System.nanoTime(); + exitValue = proc.waitFor(); + long meas3_nsec = System.nanoTime(); + outputStream.flush(); + + long meas4_nsec = System.nanoTime(); + + LOGGER.info("RUNTIME[nsec] ExecCmd::doRun(): " + + String.valueOf((long)Math.round( (meas1_nsec - start_nsec)/1.0e6 )) + + " " + String.valueOf((long)Math.round( (meas2_nsec - start_nsec)/1.0e6 )) + + " " + String.valueOf((long)Math.round( (meas3_nsec - start_nsec)/1.0e6 )) + + " " + String.valueOf((long)Math.round( (meas4_nsec - start_nsec)/1.0e6 ))); } diff --git a/data-access/servlet/src/main/java/webapi/ServletCutout.java b/data-access/servlet/src/main/java/webapi/ServletCutout.java index 19e58b5..c2ad072 100644 --- a/data-access/servlet/src/main/java/webapi/ServletCutout.java +++ b/data-access/servlet/src/main/java/webapi/ServletCutout.java @@ -244,6 +244,7 @@ public class ServletCutout extends HttpServlet { boolean showDuration = settings.defaults.showDuration; long startTime_msec = System.currentTimeMillis(); + long startTime_nsec = System.nanoTime(); ServletOutputStream respOutputStream = response.getOutputStream(); @@ -338,6 +339,7 @@ public class ServletCutout extends HttpServlet respOutputStream.close(); } + LOGGER.info("RUNTIME[nsec] Servlet::execRequest: "+String.valueOf(System.nanoTime() - startTime_nsec)); } private String convertLocalPathnameToRemoteUrl(String localPathname, -- GitLab