comparison src/main/java/jp/ac/u_ryukyu/ie/cr/benchMark/index/CreateIndexBenchMark.java @ 320:e3e4ffd746cb

commit
author tatsuki
date Tue, 07 Feb 2017 21:34:21 +0900
parents 5c4f8a7b4468
children
comparison
equal deleted inserted replaced
319:b606b727dc2b 320:e3e4ffd746cb
6 import jp.ac.u_ryukyu.ie.cr.jungle.store.nodepath.DefaultNodePath; 6 import jp.ac.u_ryukyu.ie.cr.jungle.store.nodepath.DefaultNodePath;
7 import jp.ac.u_ryukyu.ie.cr.jungle.store.nodepath.NodePath; 7 import jp.ac.u_ryukyu.ie.cr.jungle.store.nodepath.NodePath;
8 import jp.ac.u_ryukyu.ie.cr.jungle.store.nodepath.RedBlackTreeNodePath; 8 import jp.ac.u_ryukyu.ie.cr.jungle.store.nodepath.RedBlackTreeNodePath;
9 import jp.ac.u_ryukyu.ie.cr.jungle.transaction.editor.jungleTreeEditor.JungleTreeEditor; 9 import jp.ac.u_ryukyu.ie.cr.jungle.transaction.editor.jungleTreeEditor.JungleTreeEditor;
10 import jp.ac.u_ryukyu.ie.cr.jungle.tree.JungleTree; 10 import jp.ac.u_ryukyu.ie.cr.jungle.tree.JungleTree;
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 11
16 import static java.lang.Thread.sleep; 12 import static java.lang.Thread.sleep;
17 13
18 /** 14 /**
19 * Created by e115731 on 2016/12/30. 15 * Created by e115731 on 2016/12/30.
20 */ 16 */
21 public class CreateIndexBenchMark { 17 public class CreateIndexBenchMark {
18 private static String key = "key";
19 private static String indexKey = "indexKey";
20 static int distanceCreateIndex = 1;
21
22 public static void main(String args[]) throws InterruptedException { 22 public static void main(String args[]) throws InterruptedException {
23 if (args.length == 0) { 23 if (args.length == 0) {
24 System.out.println("args default or difference"); 24 System.out.println("args default or redblack");
25 System.exit(0); 25 System.exit(0);
26 } 26 }
27 27
28 if (args[0].equals("default")) { 28 if (args[0].equals("default")) {
29 System.out.println("create default tree"); 29 System.out.println("create default tree");
30 } else { 30 } else {
31 System.out.println("create red black tree"); 31 System.out.println("create red black tree");
32 } 32 }
33 33
34 String key = "key"; 34 warmUp(args);
35 String indexKey = "indexKey";
36 warmUp();
37 for (int i = 0; i <= 1000; ) { 35 for (int i = 0; i <= 1000; ) {
38 Jungle jungle = new DefaultJungle(null, "hogehoge"); 36 Jungle jungle = new DefaultJungle(null, "hogehoge");
39 Long t1 = System.currentTimeMillis(); 37 Long t1 = System.currentTimeMillis();
40 JungleTree tree; 38 JungleTree tree;
41 NodePath path; 39 NodePath path;
46 tree = jungle.createNewRedBlackTree("Tree", key); 44 tree = jungle.createNewRedBlackTree("Tree", key);
47 path = new RedBlackTreeNodePath(); 45 path = new RedBlackTreeNodePath();
48 } 46 }
49 JungleTreeEditor editor = tree.getJungleTreeEditor(); 47 JungleTreeEditor editor = tree.getJungleTreeEditor();
50 int maxNodeCount = i; 48 int maxNodeCount = i;
51 JungleTreeCreater creater = new JungleTreeCreater(maxNodeCount); 49 JungleTreeCreater creater = new JungleTreeCreater(maxNodeCount, distanceCreateIndex);
52 editor = creater.createTree(editor, key, indexKey, path); 50 editor = creater.createTree(editor, key, indexKey, path);
53 Long t2 = System.currentTimeMillis(); 51 Long t2 = System.currentTimeMillis();
54 System.out.println((i) + " " + (t2 - t1)); 52 System.out.println((i) + " " + (t2 - t1));
55 i = i + 100; 53 i = i + 100;
56 System.gc(); //GCしないとクソみたいに重くなる 54 System.gc(); //GCしないとクソみたいに重くなる
57 sleep(1000); 55 sleep(1000);
58 } 56 }
59 } 57 }
60 58
61 private static void warmUp(){ 59 private static void warmUp(String[] args) {
62 Jungle jungle = new DefaultJungle(null, "hogehoge"); 60
63 JungleTree tree = jungle.createNewDifferenceTree("Tree"); 61 for (int i = 0; i <= 1000; ) {
64 NodePath path = new DefaultNodePath(); 62 Jungle jungle = new DefaultJungle(null, "hogehoge");
65 JungleTreeEditor editor = tree.getJungleTreeEditor(); 63 Long t1 = System.currentTimeMillis();
66 Either<Error, JungleTreeEditor> either = editor.putAttribute(path, "key", ByteBuffer.wrap("value".getBytes())); 64 JungleTree tree;
67 if (either.isA()) 65 NodePath path;
68 return; 66 if (args[0].equals("default")) {
69 editor = either.b(); 67 tree = jungle.createNewTree("Tree");
70 either = editor.success(); 68 path = new DefaultNodePath();
69 } else {
70 tree = jungle.createNewRedBlackTree("Tree", key);
71 path = new RedBlackTreeNodePath();
72 }
73 JungleTreeEditor editor = tree.getJungleTreeEditor();
74 int maxNodeCount = i;
75 JungleTreeCreater creater = new JungleTreeCreater(maxNodeCount, distanceCreateIndex);
76 editor = creater.createTree(editor, key, indexKey, path);
77 Long t2 = System.currentTimeMillis();
78
79 i = i + 100;
80 System.gc(); //GCしないとクソみたいに重くなる
81 }
71 } 82 }
72 } 83 }