From dbb10a4ed5dc763b4c603e5cc3f2b70a202c0a2b Mon Sep 17 00:00:00 2001 From: Bob Date: Fri, 8 Jan 2016 13:31:27 +0100 Subject: [PATCH] Factor in inaccurancy of System.nanoTime --- utils/src/test/java/com/cloud/utils/TestProfiler.java | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/utils/src/test/java/com/cloud/utils/TestProfiler.java b/utils/src/test/java/com/cloud/utils/TestProfiler.java index 25b651844bd..f0e163e63f9 100644 --- a/utils/src/test/java/com/cloud/utils/TestProfiler.java +++ b/utils/src/test/java/com/cloud/utils/TestProfiler.java @@ -28,9 +28,12 @@ import com.cloud.utils.testcase.Log4jEnabledTestCase; public class TestProfiler extends Log4jEnabledTestCase { protected final static Logger s_logger = Logger.getLogger(TestProfiler.class); - private static final long ONE_SECOND = 1000l; private static final long MILLIS_FACTOR = 1000l; private static final int MARGIN = 100; + // Profiler uses System.nanoTime which is not reliable on the millisecond + // A sleep of 1000 milliseconds CAN be measured as 999 milliseconds + // Therefore make the second larger, by 10% of the margin + private static final long ONE_SECOND = 1000l + (MARGIN / 10); private static final double EXPONENT = 3d; @Test