Mercurial > hg > Members > shoshi > jungle > jungle-core
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 } |