You are viewing a plain text version of this content. The canonical link for it is here.
Posted to oak-commits@jackrabbit.apache.org by th...@apache.org on 2013/10/01 08:12:26 UTC

svn commit: r1527924 - in /jackrabbit/oak/trunk/oak-run: README.md src/main/java/org/apache/jackrabbit/oak/benchmark/AbstractTest.java

Author: thomasm
Date: Tue Oct  1 06:12:26 2013
New Revision: 1527924

URL: http://svn.apache.org/r1527924
Log:
OAK-641: Improved benchmark tooling - add an option to collect and print profiling info

Modified:
    jackrabbit/oak/trunk/oak-run/README.md
    jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/benchmark/AbstractTest.java

Modified: jackrabbit/oak/trunk/oak-run/README.md
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-run/README.md?rev=1527924&r1=1527923&r2=1527924&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-run/README.md (original)
+++ jackrabbit/oak/trunk/oak-run/README.md Tue Oct  1 06:12:26 2013
@@ -47,6 +47,7 @@ Some system properties are also used to 
 
     -Dwarmup=5         - warmup time (in seconds)
     -Druntime=60       - how long a single benchmark should run (in seconds)
+    -Dprofile=true     - to collect and print profiling data
 
 The test case names like `ReadPropertyTest`, `SmallFileReadTest` and
 `SmallFileWriteTest` indicate the specific test case being run. You can

Modified: jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/benchmark/AbstractTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/benchmark/AbstractTest.java?rev=1527924&r1=1527923&r2=1527924&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/benchmark/AbstractTest.java (original)
+++ jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/benchmark/AbstractTest.java Tue Oct  1 06:12:26 2013
@@ -28,6 +28,7 @@ import javax.jcr.Session;
 import javax.jcr.SimpleCredentials;
 
 import org.apache.commons.math.stat.descriptive.DescriptiveStatistics;
+import org.apache.jackrabbit.oak.benchmark.util.Profiler;
 import org.apache.jackrabbit.oak.fixture.RepositoryFixture;
 
 /**
@@ -40,6 +41,8 @@ abstract class AbstractTest extends Benc
     private static final long WARMUP = TimeUnit.SECONDS.toMillis(Long.getLong("warmup", 5));
 
     private static final long RUNTIME = TimeUnit.SECONDS.toMillis(Long.getLong("runtime", 60));
+    
+    private static final boolean PROFILE = Boolean.getBoolean("profile");
 
     private Repository repository;
 
@@ -50,6 +53,8 @@ abstract class AbstractTest extends Benc
     private List<Thread> threads;
 
     private volatile boolean running;
+    
+    private Profiler profiler;
 
     protected static int getScale(int def) {
         int scale = Integer.getInteger("scale", 0);
@@ -76,6 +81,9 @@ abstract class AbstractTest extends Benc
         this.running = true;
 
         beforeSuite();
+        if (PROFILE) {
+            profiler = new Profiler().startCollecting();
+        }
     }
 
     @Override
@@ -161,6 +169,11 @@ abstract class AbstractTest extends Benc
         for (Thread thread : threads) {
             thread.join();
         }
+        
+        if (profiler != null) {
+            System.out.println(profiler.stopCollecting().getTop(5));
+            profiler = null;
+        }
 
         afterSuite();