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