You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tinkerpop.apache.org by ok...@apache.org on 2015/06/04 18:15:17 UTC

incubator-tinkerpop git commit: added TimeUtil.clockWithResult() which returns a Pair.

Repository: incubator-tinkerpop
Updated Branches:
  refs/heads/master 25ed1fb4d -> 9b4994c49


added TimeUtil.clockWithResult() which returns a Pair<Double,S>.


Project: http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/commit/9b4994c4
Tree: http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/tree/9b4994c4
Diff: http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/diff/9b4994c4

Branch: refs/heads/master
Commit: 9b4994c49694586fd3be504757bf7319ae380ba0
Parents: 25ed1fb
Author: Marko A. Rodriguez <ok...@gmail.com>
Authored: Thu Jun 4 10:15:11 2015 -0600
Committer: Marko A. Rodriguez <ok...@gmail.com>
Committed: Thu Jun 4 10:15:11 2015 -0600

----------------------------------------------------------------------
 .../org/apache/tinkerpop/gremlin/util/TimeUtil.java | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/9b4994c4/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/util/TimeUtil.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/util/TimeUtil.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/util/TimeUtil.java
index 22a46c5..8932e42 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/util/TimeUtil.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/util/TimeUtil.java
@@ -18,7 +18,10 @@
  */
 package org.apache.tinkerpop.gremlin.util;
 
+import org.javatuples.Pair;
+
 import java.util.concurrent.TimeUnit;
+import java.util.function.Supplier;
 import java.util.stream.IntStream;
 
 /**
@@ -58,4 +61,17 @@ public final class TimeUtil {
             return (System.nanoTime() - t) * 0.000001;
         }).sum() / loops;
     }
+
+    public static <S> Pair<Double, S> clockWithResult(final Supplier<S> supplier) {
+        return clockWithResult(100, supplier);
+    }
+
+    public static <S> Pair<Double, S> clockWithResult(final int loops, final Supplier<S> supplier) {
+        final S result = supplier.get(); // warm up
+        return Pair.with(IntStream.range(0, loops).mapToDouble(i -> {
+            long t = System.nanoTime();
+            supplier.get();
+            return (System.nanoTime() - t) * 0.000001;
+        }).sum() / loops, result);
+    }
 }