Pārlūkot izejas kodu

HPCC-20564 Inconsistent time units

Signed-off-by: Richard Chapman <rchapman@hpccsystems.com>
Richard Chapman 6 gadi atpakaļ
vecāks
revīzija
c644f390d2
1 mainītis faili ar 10 papildinājumiem un 4 dzēšanām
  1. 10 4
      system/jlib/jstats.cpp

+ 10 - 4
system/jlib/jstats.cpp

@@ -223,6 +223,7 @@ unsigned __int64 getIPV4StatsValue(const IpAddress & ip)
 
 //--------------------------------------------------------------------------------------------------------------------
 
+const static unsigned __int64 oneMicroSecond = I64C(1000);
 const static unsigned __int64 oneMilliSecond = I64C(1000000);
 const static unsigned __int64 oneSecond = I64C(1000000000);
 const static unsigned __int64 oneMinute = I64C(60000000000);
@@ -232,8 +233,13 @@ const static unsigned __int64 oneDay = 24 * I64C(3600000000000);
 static void formatTime(StringBuffer & out, unsigned __int64 value)
 {
     //Aim to display at least 3 significant digits in the result string
-    if (value < oneMilliSecond)
+    if (value < oneMicroSecond)
         out.appendf("%uns", (unsigned)value);
+    else if (value < oneMilliSecond)
+    {
+        unsigned uvalue = (unsigned)value;
+        out.appendf("%u.%03uus", uvalue / 1000, uvalue % 1000);
+    }
     else if (value < oneSecond)
     {
         unsigned uvalue = (unsigned)value;
@@ -253,11 +259,11 @@ static void formatTime(StringBuffer & out, unsigned __int64 value)
         if (days > 0)
             out.appendf("%u days ", days);
         if (hours > 0 || days)
-            out.appendf("%u:%02u:%02u", hours, mins, secs);
+            out.appendf("%uh%02um%02us", hours, mins, secs);
         else if (mins >= 10)
-            out.appendf("%u:%02u", mins, secs);
+            out.appendf("%um%02us", mins, secs);
         else if (mins >= 1)
-            out.appendf("%u:%02u.%03u", mins, secs, ns / 1000000);
+            out.appendf("%um%02u.%03us", mins, secs, ns / 1000000);
         else
             out.appendf("%u.%03us", secs, ns / 1000000);
     }