9
|
1 package jp.ac.u_ryukyu.ie.cr.tatsuki.oldTree;
|
|
2
|
|
3 import java.nio.ByteBuffer;
|
|
4
|
|
5 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.DefaultJungle;
|
|
6 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.Jungle;
|
|
7 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.JungleTree;
|
|
8 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.JungleTreeEditor;
|
|
9 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.DefaultNodePath;
|
|
10 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.DefaultTreeEditor;
|
|
11 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.TreeNode;
|
|
12 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.traverser.DefaultTraverser;
|
|
13 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Either;
|
|
14 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Error;
|
|
15 import junit.framework.Assert;
|
|
16
|
|
17 public class GetOldTreeTime {
|
|
18
|
|
19 public static void main(String args[]) {
|
|
20 Jungle jungle = new DefaultJungle(null, "hogehoge", new DefaultTreeEditor(new DefaultTraverser()));
|
|
21 jungle.createNewTree("tree");
|
|
22 JungleTree tree = jungle.getTreeByName("tree");
|
|
23 JungleTreeEditor editor = tree.getTreeEditor();
|
|
24 DefaultNodePath path = new DefaultNodePath();
|
|
25
|
|
26 editor = editor.addNewChildAt(path, 0).b().success().b();
|
|
27
|
|
28 for (int num = 0; num < 1000000; num++) {
|
|
29 JungleTreeEditor putAttributeEditor = editor.putAttribute(path.add(0), "test", ByteBuffer.wrap("tatsuki".getBytes())).b();
|
|
30 Either<Error, JungleTreeEditor> successEither = putAttributeEditor.success();
|
|
31 Assert.assertFalse(successEither.isA());
|
|
32 editor = successEither.b();
|
|
33 }
|
|
34 System.out.println("TreeRevision = " + tree.revision());
|
|
35 long t1 = System.currentTimeMillis();
|
|
36 JungleTree oldTree = tree.getOldTree(1).b();
|
|
37 long t2 = System.currentTimeMillis();
|
|
38 System.out.println("time = " + (t2 - t1));
|
|
39 System.out.println("oldTreeRevision = " + oldTree.revision());
|
|
40 }
|
|
41 }
|