283
|
1 package jp.ac.u_ryukyu.ie.cr.benchMark.index;
|
|
2
|
285
|
3 import jp.ac.u_ryukyu.ie.cr.benchMark.JungleTreeCreater;
|
283
|
4 import jp.ac.u_ryukyu.ie.cr.jungle.DefaultJungle;
|
|
5 import jp.ac.u_ryukyu.ie.cr.jungle.Jungle;
|
|
6 import jp.ac.u_ryukyu.ie.cr.jungle.store.nodepath.DefaultNodePath;
|
|
7 import jp.ac.u_ryukyu.ie.cr.jungle.store.nodepath.NodePath;
|
317
|
8 import jp.ac.u_ryukyu.ie.cr.jungle.store.nodepath.RedBlackTreeNodePath;
|
283
|
9 import jp.ac.u_ryukyu.ie.cr.jungle.transaction.editor.jungleTreeEditor.JungleTreeEditor;
|
|
10 import jp.ac.u_ryukyu.ie.cr.jungle.tree.JungleTree;
|
318
|
11 import jp.ac.u_ryukyu.ie.cr.jungle.util.Either;
|
|
12 import jp.ac.u_ryukyu.ie.cr.jungle.util.Error.Error;
|
|
13
|
|
14 import java.nio.ByteBuffer;
|
|
15
|
|
16 import static java.lang.Thread.sleep;
|
283
|
17
|
|
18 /**
|
|
19 * Created by e115731 on 2016/12/30.
|
|
20 */
|
|
21 public class CreateIndexBenchMark {
|
318
|
22 public static void main(String args[]) throws InterruptedException {
|
294
|
23 if (args.length == 0) {
|
|
24 System.out.println("args default or difference");
|
|
25 System.exit(0);
|
|
26 }
|
318
|
27
|
294
|
28 if (args[0].equals("default")) {
|
|
29 System.out.println("create default tree");
|
317
|
30 } else {
|
294
|
31 System.out.println("create red black tree");
|
|
32 }
|
|
33
|
283
|
34 String key = "key";
|
|
35 String indexKey = "indexKey";
|
318
|
36 warmUp();
|
|
37 for (int i = 0; i <= 1000; ) {
|
317
|
38 Jungle jungle = new DefaultJungle(null, "hogehoge");
|
283
|
39 Long t1 = System.currentTimeMillis();
|
294
|
40 JungleTree tree;
|
317
|
41 NodePath path;
|
294
|
42 if (args[0].equals("default")) {
|
318
|
43 tree = jungle.createNewTree("Tree");
|
317
|
44 path = new DefaultNodePath();
|
|
45 } else {
|
318
|
46 tree = jungle.createNewRedBlackTree("Tree", key);
|
317
|
47 path = new RedBlackTreeNodePath();
|
294
|
48 }
|
317
|
49 JungleTreeEditor editor = tree.getJungleTreeEditor();
|
294
|
50 int maxNodeCount = i;
|
285
|
51 JungleTreeCreater creater = new JungleTreeCreater(maxNodeCount);
|
|
52 editor = creater.createTree(editor, key, indexKey, path);
|
283
|
53 Long t2 = System.currentTimeMillis();
|
287
|
54 System.out.println((i) + " " + (t2 - t1));
|
294
|
55 i = i + 100;
|
285
|
56 System.gc(); //GCしないとクソみたいに重くなる
|
318
|
57 sleep(1000);
|
283
|
58 }
|
|
59 }
|
318
|
60
|
|
61 private static void warmUp(){
|
|
62 Jungle jungle = new DefaultJungle(null, "hogehoge");
|
|
63 JungleTree tree = jungle.createNewDifferenceTree("Tree");
|
|
64 NodePath path = new DefaultNodePath();
|
|
65 JungleTreeEditor editor = tree.getJungleTreeEditor();
|
|
66 Either<Error, JungleTreeEditor> either = editor.putAttribute(path, "key", ByteBuffer.wrap("value".getBytes()));
|
|
67 if (either.isA())
|
|
68 return;
|
|
69 editor = either.b();
|
|
70 either = editor.success();
|
|
71 }
|
283
|
72 }
|