Index: /trunk/src/org/openstreetmap/josm/tools/Stopwatch.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/tools/Stopwatch.java	(revision 17617)
+++ /trunk/src/org/openstreetmap/josm/tools/Stopwatch.java	(revision 17618)
@@ -23,5 +23,5 @@
      */
     public static Stopwatch createStarted() {
-        return new Stopwatch(System.currentTimeMillis());
+        return new Stopwatch(System.nanoTime());
     }
 
@@ -32,5 +32,5 @@
      */
     public long elapsed() {
-        return System.currentTimeMillis() - start;
+        return (System.nanoTime() - start) / 1_000_000;
     }
 
Index: /trunk/test/performance/org/openstreetmap/josm/PerformanceTestUtils.java
===================================================================
--- /trunk/test/performance/org/openstreetmap/josm/PerformanceTestUtils.java	(revision 17617)
+++ /trunk/test/performance/org/openstreetmap/josm/PerformanceTestUtils.java	(revision 17618)
@@ -16,4 +16,5 @@
 
 import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
+import org.openstreetmap.josm.tools.Stopwatch;
 
 /**
@@ -44,28 +45,9 @@
 
     /**
-     * A helper class that captures the time from object creation until #done() was called.
-     * @author Michael Zangl
-     */
-    public static class PerformanceTestTimerCapture {
-        private final long time;
-
-        protected PerformanceTestTimerCapture() {
-            time = System.nanoTime();
-        }
-
-        /**
-         * Get the time since this object was created.
-         * @return The time.
-         */
-        public long getTimeSinceCreation() {
-            return (System.nanoTime() - time) / 1000000;
-        }
-    }
-
-    /**
      * A timer that measures the time from it's creation to the {@link #done()} call.
      * @author Michael Zangl
      */
-    public static class PerformanceTestTimer extends PerformanceTestTimerCapture {
+    public static class PerformanceTestTimer {
+        private final Stopwatch stopwatch = Stopwatch.createStarted();
         private final String name;
         private boolean measurementPlotsPlugin = true;
@@ -87,5 +69,5 @@
          */
         public void done() {
-            long dTime = getTimeSinceCreation();
+            long dTime = stopwatch.elapsed();
             if (measurementPlotsPlugin) {
                 measurementPlotsPluginOutput(name + "(ms)", dTime);
@@ -120,14 +102,14 @@
         for (int i = 0; i < TIMES_WARMUP; i++) {
             cleanSystem();
-            PerformanceTestTimerCapture capture = new PerformanceTestTimerCapture();
+            Stopwatch capture = Stopwatch.createStarted();
             testRunner.run();
-            capture.getTimeSinceCreation();
+            capture.elapsed();
         }
         ArrayList<Long> times = new ArrayList<>();
         for (int i = 0; i < TIMES_RUN; i++) {
             cleanSystem();
-            PerformanceTestTimerCapture capture = new PerformanceTestTimerCapture();
+            Stopwatch stopwatch = Stopwatch.createStarted();
             testRunner.run();
-            times.add(capture.getTimeSinceCreation());
+            times.add(stopwatch.elapsed());
         }
         System.out.println(times);
