From 302ced1476d2fb7dcc820cbc6393d4109147ae01 Mon Sep 17 00:00:00 2001
From: akwizgran <michael@briarproject.org>
Date: Thu, 7 Dec 2017 17:50:10 +0000
Subject: [PATCH] Measure the first run to see the extent of warm-up.

---
 .../bramble/db/JdbcDatabasePerformanceTest.java   | 15 +++++++++++----
 1 file changed, 11 insertions(+), 4 deletions(-)

diff --git a/bramble-core/src/test/java/org/briarproject/bramble/db/JdbcDatabasePerformanceTest.java b/bramble-core/src/test/java/org/briarproject/bramble/db/JdbcDatabasePerformanceTest.java
index e28e228816..edfe4b2f03 100644
--- a/bramble-core/src/test/java/org/briarproject/bramble/db/JdbcDatabasePerformanceTest.java
+++ b/bramble-core/src/test/java/org/briarproject/bramble/db/JdbcDatabasePerformanceTest.java
@@ -243,16 +243,23 @@ public abstract class JdbcDatabasePerformanceTest extends BrambleTestCase {
 		populateDatabase(db);
 		db.close();
 		db = openDatabase();
-		List<Long> durations = new ArrayList<>(MEASUREMENT_ITERATIONS);
+		// Measure the first run
+		long start = System.nanoTime();
+		task.run(db);
+		long firstDuration = System.nanoTime() - start;
+		// Warm up the JIT and DB indices
 		for (int i = 0; i < WARMUP_ITERATIONS; i++) task.run(db);
+		// Measure the next runs
+		List<Long> durations = new ArrayList<>(MEASUREMENT_ITERATIONS);
 		for (int i = 0; i < MEASUREMENT_ITERATIONS; i++) {
-			long start = System.nanoTime();
+			start = System.nanoTime();
 			task.run(db);
 			durations.add(System.nanoTime() - start);
 		}
 		db.close();
-		String result = String.format("%s\t%,d\t%,d\t%,d", name,
-				(long) getMean(durations), (long) getMedian(durations),
+		String result = String.format("%s\t%,d\t%,d\t%,d\t%,d", name,
+				firstDuration, (long) getMean(durations),
+				(long) getMedian(durations),
 				(long) getStandardDeviation(durations));
 		System.out.println(result);
 		PrintWriter out =
-- 
GitLab