You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jackrabbit.apache.org by th...@apache.org on 2011/12/02 17:29:56 UTC

svn commit: r1209566 - in /jackrabbit/sandbox/microkernel/src/test/java/org/apache/jackrabbit/mk/large: CreateNodesTraverseTest.java LargeNodeTest.java

Author: thomasm
Date: Fri Dec  2 16:29:56 2011
New Revision: 1209566

URL: http://svn.apache.org/viewvc?rev=1209566&view=rev
Log:
Using the StopWatch and NodeCreator tools

Modified:
    jackrabbit/sandbox/microkernel/src/test/java/org/apache/jackrabbit/mk/large/CreateNodesTraverseTest.java
    jackrabbit/sandbox/microkernel/src/test/java/org/apache/jackrabbit/mk/large/LargeNodeTest.java

Modified: jackrabbit/sandbox/microkernel/src/test/java/org/apache/jackrabbit/mk/large/CreateNodesTraverseTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/sandbox/microkernel/src/test/java/org/apache/jackrabbit/mk/large/CreateNodesTraverseTest.java?rev=1209566&r1=1209565&r2=1209566&view=diff
==============================================================================
--- jackrabbit/sandbox/microkernel/src/test/java/org/apache/jackrabbit/mk/large/CreateNodesTraverseTest.java (original)
+++ jackrabbit/sandbox/microkernel/src/test/java/org/apache/jackrabbit/mk/large/CreateNodesTraverseTest.java Fri Dec  2 16:29:56 2011
@@ -14,6 +14,7 @@
 package org.apache.jackrabbit.mk.large;
 
 import org.apache.jackrabbit.mk.MultiMkTestBase;
+import org.apache.jackrabbit.mk.util.NodeCreator;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.junit.runners.Parameterized;
@@ -26,118 +27,20 @@ public class CreateNodesTraverseTest ext
 
     // -Xmx512m -Dmk.fastDb=true
 
-    // private int totalCount = 200000;
-
     private int totalCount = 200;
 
-    private int width = 30, count;
-    private long start, last;
-    private String head;
+    // private int totalCount = 2000000;
 
     public CreateNodesTraverseTest(String url) {
         super(url);
     }
 
     @Test
-    public void test1() throws Exception {
-        // Profiler p = new Profiler();
-        // p.interval = 2;
-        // p.startCollecting();
-        // test();
-        // System.out.println(p.getTop(5));
-    }
-
-    @Test
     public void test() throws Exception {
-        head = mk.getHeadRevision();
-
-        int depth = (int) Math.ceil(Math.log(totalCount) / Math.log(width));
-        log("depth: " + depth);
-        head = mk.commit("/", "+\"test\":{}", head, "");
-        long time;
-        start = time = System.currentTimeMillis();
-        count = 0;
-        createNodes("test", depth);
-        time = System.currentTimeMillis() - time;
-        if (time == 0) {
-            log("Cannot time execution of test due to insufficient timer resolution");
-        } else {
-            log("created " + count + " nodes in " + (time / 1000) +
-                    " seconds (" + (count * 1000 / time) + " nodes/sec)");
-        }
-
-        for (int i = 0; i < 2; i++) {
-            start = time = System.currentTimeMillis();
-            count = 0;
-            traverse("test", depth);
-            time = System.currentTimeMillis() - time;
-            if (time == 0) {
-                log("Cannot time execution of test due to insufficient timer resolution");
-            } else {
-                log("read " + count + " nodes in " + (time / 1000) +
-                        " seconds (" + (count * 1000 / time) + " nodes/sec)");
-            }
-        }
-
-    }
-
-    private void createNodes(String parent, int depth) {
-        if (count >= totalCount) {
-            return;
-        }
-        StringBuilder buff = new StringBuilder();
-        for (int i = 0; i < width; i++) {
-            if (count >= totalCount && depth == 0) {
-                break;
-            }
-            String p = parent + "/node" + depth + i;
-            buff.append("+ \"" + p + "\": {\"data\":\"Hello World " + count++ + "\"}\n");
-            if (count % 1000 == 0) {
-                long now = System.currentTimeMillis();
-                if (now - last > 1000) {
-                    last = now;
-                    log(count + " nodes (" + (count * 1000 / (now - start)) + " op/s)");
-                }
-            }
-        }
-        head = mk.commit("/", buff.toString(), head, "");
-        if (depth > 0) {
-            for (int i = 0; i < width; i++) {
-                String p = parent + "/node" + depth + i;
-                createNodes(p, depth - 1);
-            }
-        }
-    }
-
-    private void traverse(String parent, int depth) throws Exception {
-        if (count >= totalCount) {
-            return;
-        }
-        for (int i = 0; i < width; i++) {
-            if (count >= totalCount && depth == 0) {
-                break;
-            }
-            String p = parent + "/node" + depth + i;
-            if (!mk.nodeExists("/" + p, head)) {
-                break;
-            }
-            mk.getNodes("/" + p, head);
-            count++;
-            if (count % 1000 == 0) {
-                long now = System.currentTimeMillis();
-                if (now - last > 1000) {
-                    last = now;
-                    log(count + " nodes (" + (count * 1000 / (now - start)) + " op/s)");
-                }
-            }
-            if (depth > 0) {
-                traverse(p, depth - 1);
-            }
-        }
-    }
-
-    private void log(String s) {
-        // System.out.println(url + " " + s);
+        NodeCreator c = new NodeCreator(mk);
+        c.setTotalCount(totalCount);
+        c.create();
+        c.traverse();
     }
 
 }

Modified: jackrabbit/sandbox/microkernel/src/test/java/org/apache/jackrabbit/mk/large/LargeNodeTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/sandbox/microkernel/src/test/java/org/apache/jackrabbit/mk/large/LargeNodeTest.java?rev=1209566&r1=1209565&r2=1209566&view=diff
==============================================================================
--- jackrabbit/sandbox/microkernel/src/test/java/org/apache/jackrabbit/mk/large/LargeNodeTest.java (original)
+++ jackrabbit/sandbox/microkernel/src/test/java/org/apache/jackrabbit/mk/large/LargeNodeTest.java Fri Dec  2 16:29:56 2011
@@ -20,6 +20,7 @@ import junit.framework.Assert;
 import org.apache.jackrabbit.mk.MultiMkTestBase;
 import org.apache.jackrabbit.mk.mem.NodeImpl;
 import org.apache.jackrabbit.mk.mem.NodeMap;
+import org.apache.jackrabbit.mk.util.StopWatch;
 import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
@@ -72,16 +73,11 @@ public class LargeNodeTest extends Multi
         // added 100000 nodes (18611 nodes/second)
         int count = 5000;
         // int count = 1000000;
-        long start = System.currentTimeMillis(), last = start;
+        StopWatch timer = new StopWatch();
         StringBuilder buff = new StringBuilder();
         for (int i = 0; i < count; i++) {
-            if (i % 100 == 0) {
-                long n = System.currentTimeMillis();
-                if (n > last + 1000) {
-                    last = n;
-                    long time = System.currentTimeMillis() - start + 1;
-                    log("added " + i + " nodes (" + (i * 1000 / time) + " nodes/second)");
-                }
+            if (i % 100 == 0 && timer.log()) {
+                log("added " + i + " nodes " + timer.operationsPerSecond(i));
             }
             buff.append("+ \"t/" + i + "\": {\"x\":" + i + "}\n");
             if (i % 1000 == 0) {
@@ -89,8 +85,7 @@ public class LargeNodeTest extends Multi
                 buff.setLength(0);
             }
         }
-        long time = System.currentTimeMillis() - start + 1;
-        log("added " + count + " nodes (" + (count * 1000 / time) + " nodes/second)");
+        log("added " + count + " nodes " + timer.operationsPerSecond(count));
         if (buff.length() > 0) {
             head = mk.commit("/", buff.toString(), head, "");
         }
@@ -103,9 +98,10 @@ public class LargeNodeTest extends Multi
 
     @Test
     public void largeNodeList() {
-        if (url.startsWith("fs:")) {
+        if (!isMemoryKernel(mk)) {
             return;
         }
+
         Assert.assertEquals("{\":childNodeCount\":0}", mk.getNodes("/:root/head/config", head));
         head = mk.commit("/:root/head/config", "^ \"maxMemoryChildren\": 10", head, "");
         Assert.assertEquals("{\"maxMemoryChildren\":10,\":childNodeCount\":0}", mk.getNodes("/:root/head/config", head));