From 0d350fb023ad0f71ffc3c5539f48d8f26a8acdf2 Mon Sep 17 00:00:00 2001
From: Patrick Fruh <patrick@kaeltis.de>
Date: Tue, 9 Jun 2020 20:17:41 +0200
Subject: [PATCH] Use Math.round, only use ms in graphs when at least 10 ms

Math.round is about 99% faster https://jsperf.com/math-round-vs-tofixed2/17

Graph change tries to avoid rising/falling graphs while displayed values don't change
---
 frontend/src/components/Service/AdvancedChart.vue    | 6 +++---
 frontend/src/components/Service/ServiceSparkLine.vue | 6 +++---
 frontend/src/mixin.js                                | 2 +-
 frontend/src/pages/Service.vue                       | 6 +++---
 4 files changed, 10 insertions(+), 10 deletions(-)

diff --git a/frontend/src/components/Service/AdvancedChart.vue b/frontend/src/components/Service/AdvancedChart.vue
index 903985a6..650ef519 100644
--- a/frontend/src/components/Service/AdvancedChart.vue
+++ b/frontend/src/components/Service/AdvancedChart.vue
@@ -130,10 +130,10 @@
                 let ts = w.globals.seriesX[seriesIndex][dataPointIndex];
                 const dt = new Date(ts).toLocaleDateString("en-us", timeoptions)
                 let val = series[seriesIndex][dataPointIndex];
-                if (val >= 1000) {
-                  val = (val / 1000).toFixed(0) + " ms"
+                if (val >= 10000) {
+                  val = Math.round(val / 1000) + " ms"
                 } else {
-                  val = (val).toFixed(0) + " μs"
+                  val = val + " μs"
                 }
                 return `<div class="chartmarker"><span>Response Time: </span><span class="font-3">${val}</span><span>${dt}</span></div>`
               },
diff --git a/frontend/src/components/Service/ServiceSparkLine.vue b/frontend/src/components/Service/ServiceSparkLine.vue
index efa0ff06..5141f578 100644
--- a/frontend/src/components/Service/ServiceSparkLine.vue
+++ b/frontend/src/components/Service/ServiceSparkLine.vue
@@ -55,10 +55,10 @@
             let ts = w.globals.seriesX[seriesIndex][dataPointIndex];
             const dt = new Date(ts).toLocaleDateString("en-us", timeoptions)
             let val = series[seriesIndex][dataPointIndex];
-            if (val >= 1000) {
-              val = (val / 1000).toFixed(0) + " ms"
+            if (val >= 10000) {
+              val = Math.round(val / 1000) + " ms"
             } else {
-              val = (val).toFixed(0) + " μs"
+              val = val + " μs"
             }
             return `<div class="chartmarker"><span>Average Response Time: </span><span class="font-3">${val}</span><span>${dt}</span></div>`
           },
diff --git a/frontend/src/mixin.js b/frontend/src/mixin.js
index 71967794..65b6b4ba 100644
--- a/frontend/src/mixin.js
+++ b/frontend/src/mixin.js
@@ -169,7 +169,7 @@ export default Vue.mixin({
       if (val >= 1000) {
           return Math.round(val / 1000) + " ms"
       }
-        return Math.round(val) + " μs"
+        return val + " μs"
     },
     firstDayOfMonth(date) {
       return startOfMonth(date)
diff --git a/frontend/src/pages/Service.vue b/frontend/src/pages/Service.vue
index 3b4ae6d1..8e2d93ff 100644
--- a/frontend/src/pages/Service.vue
+++ b/frontend/src/pages/Service.vue
@@ -269,10 +269,10 @@ export default {
                         let ts = w.globals.seriesX[seriesIndex][dataPointIndex];
                         const dt = new Date(ts).toLocaleDateString("en-us", timeoptions)
                         let val = series[seriesIndex][dataPointIndex];
-                        if (val >= 1000) {
-                            val = (val / 1000).toFixed(0) + " ms"
+                        if (val >= 10000) {
+                            val = Math.round(val / 1000) + " ms"
                         } else {
-                            val = (val).toFixed(0) + " μs"
+                            val = val + " μs"
                         }
                         return `<div class="chartmarker"><span>Response Time: </span><span class="font-3">${val}</span><span>${dt}</span></div>`
                     },