annotate src/main/java/jp/ac/u_ryukyu/ie/cr/tatsuki/xml/TransactionPerSecondMeasurement.java @ 19:17cc11b04157

change read function for transactionPerSecond
author one
date Sun, 15 Feb 2015 02:06:57 +0900
parents 190890be73e4
children 195c1a644550
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
13
7c544969d4c9 add TransactionPersocondMeasurement
one
parents:
diff changeset
1 package jp.ac.u_ryukyu.ie.cr.tatsuki.xml;
7c544969d4c9 add TransactionPersocondMeasurement
one
parents:
diff changeset
2
17
917ecf2c7350 function Measurement
one
parents: 15
diff changeset
3 import java.io.BufferedWriter;
917ecf2c7350 function Measurement
one
parents: 15
diff changeset
4 import java.io.File;
917ecf2c7350 function Measurement
one
parents: 15
diff changeset
5 import java.io.FileWriter;
917ecf2c7350 function Measurement
one
parents: 15
diff changeset
6 import java.io.IOException;
917ecf2c7350 function Measurement
one
parents: 15
diff changeset
7 import java.io.PrintWriter;
13
7c544969d4c9 add TransactionPersocondMeasurement
one
parents:
diff changeset
8 import java.nio.ByteBuffer;
7c544969d4c9 add TransactionPersocondMeasurement
one
parents:
diff changeset
9 import java.util.Random;
7c544969d4c9 add TransactionPersocondMeasurement
one
parents:
diff changeset
10
19
17cc11b04157 change read function for transactionPerSecond
one
parents: 18
diff changeset
11 import javax.xml.parsers.ParserConfigurationException;
17cc11b04157 change read function for transactionPerSecond
one
parents: 18
diff changeset
12
17cc11b04157 change read function for transactionPerSecond
one
parents: 18
diff changeset
13 import org.xml.sax.SAXException;
17cc11b04157 change read function for transactionPerSecond
one
parents: 18
diff changeset
14
17cc11b04157 change read function for transactionPerSecond
one
parents: 18
diff changeset
15 import jp.ac.u_ryukyu.cr.ie.tatsuki.xmlTestBbs.JuGrix;
13
7c544969d4c9 add TransactionPersocondMeasurement
one
parents:
diff changeset
16 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.DefaultJungle;
7c544969d4c9 add TransactionPersocondMeasurement
one
parents:
diff changeset
17 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.Jungle;
7c544969d4c9 add TransactionPersocondMeasurement
one
parents:
diff changeset
18 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.JungleTree;
7c544969d4c9 add TransactionPersocondMeasurement
one
parents:
diff changeset
19 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.JungleTreeEditor;
7c544969d4c9 add TransactionPersocondMeasurement
one
parents:
diff changeset
20 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.NodePath;
7c544969d4c9 add TransactionPersocondMeasurement
one
parents:
diff changeset
21 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.DefaultNodePath;
7c544969d4c9 add TransactionPersocondMeasurement
one
parents:
diff changeset
22 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.DefaultTreeEditor;
7c544969d4c9 add TransactionPersocondMeasurement
one
parents:
diff changeset
23 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.traverser.DefaultTraverser;
7c544969d4c9 add TransactionPersocondMeasurement
one
parents:
diff changeset
24
7c544969d4c9 add TransactionPersocondMeasurement
one
parents:
diff changeset
25 public class TransactionPerSecondMeasurement {
7c544969d4c9 add TransactionPersocondMeasurement
one
parents:
diff changeset
26
19
17cc11b04157 change read function for transactionPerSecond
one
parents: 18
diff changeset
27 public static void main(String[] args) throws InterruptedException, IOException, ParserConfigurationException, SAXException {
17cc11b04157 change read function for transactionPerSecond
one
parents: 18
diff changeset
28 // Jungle jungle = new DefaultJungle(null, "hoge", new DefaultTreeEditor(new DefaultTraverser()));
17cc11b04157 change read function for transactionPerSecond
one
parents: 18
diff changeset
29 // JungleTree tree = jungle.createNewTree("testTree");
17cc11b04157 change read function for transactionPerSecond
one
parents: 18
diff changeset
30 // JungleTreeEditor editor = tree.getTreeEditor();
17cc11b04157 change read function for transactionPerSecond
one
parents: 18
diff changeset
31 // editor = createTree(0, new DefaultNodePath(), editor);
17cc11b04157 change read function for transactionPerSecond
one
parents: 18
diff changeset
32 JuGrix jugrix = extendXmlTree.createJuGrix(true,100);
17cc11b04157 change read function for transactionPerSecond
one
parents: 18
diff changeset
33 System.out.println("endCreatejugrixa ");
17cc11b04157 change read function for transactionPerSecond
one
parents: 18
diff changeset
34 // editor = editor.success().b();
17cc11b04157 change read function for transactionPerSecond
one
parents: 18
diff changeset
35 System.out.println(Runtime.getRuntime().availableProcessors());
13
7c544969d4c9 add TransactionPersocondMeasurement
one
parents:
diff changeset
36
17
917ecf2c7350 function Measurement
one
parents: 15
diff changeset
37 if (args.length > 0) {
19
17cc11b04157 change read function for transactionPerSecond
one
parents: 18
diff changeset
38
17
917ecf2c7350 function Measurement
one
parents: 15
diff changeset
39 if (args[0].equals("read"))
19
17cc11b04157 change read function for transactionPerSecond
one
parents: 18
diff changeset
40 readOnly(jugrix);
17
917ecf2c7350 function Measurement
one
parents: 15
diff changeset
41 if (args[0].equals("write"))
19
17cc11b04157 change read function for transactionPerSecond
one
parents: 18
diff changeset
42 readAndWrite(jugrix);
17cc11b04157 change read function for transactionPerSecond
one
parents: 18
diff changeset
43
17
917ecf2c7350 function Measurement
one
parents: 15
diff changeset
44 } else
917ecf2c7350 function Measurement
one
parents: 15
diff changeset
45 System.out.println("Please with the argument");
917ecf2c7350 function Measurement
one
parents: 15
diff changeset
46 }
13
7c544969d4c9 add TransactionPersocondMeasurement
one
parents:
diff changeset
47
19
17cc11b04157 change read function for transactionPerSecond
one
parents: 18
diff changeset
48 private static void readAndWrite(JuGrix jugrix) throws InterruptedException, IOException {
17
917ecf2c7350 function Measurement
one
parents: 15
diff changeset
49 System.out.println("read and write");
917ecf2c7350 function Measurement
one
parents: 15
diff changeset
50 File file = new File("./time/readAndWrite");
917ecf2c7350 function Measurement
one
parents: 15
diff changeset
51 PrintWriter pw = new PrintWriter(new BufferedWriter(new FileWriter(file)));
917ecf2c7350 function Measurement
one
parents: 15
diff changeset
52 for (int THREAD_COUNT = 1; THREAD_COUNT <= 12; THREAD_COUNT++) {
917ecf2c7350 function Measurement
one
parents: 15
diff changeset
53 ReadJungleThread readThread[] = new ReadJungleThread[THREAD_COUNT];
917ecf2c7350 function Measurement
one
parents: 15
diff changeset
54 for (int count = 0; THREAD_COUNT > count; count++) {
19
17cc11b04157 change read function for transactionPerSecond
one
parents: 18
diff changeset
55 readThread[count] = new ReadJungleThread(jugrix);
17
917ecf2c7350 function Measurement
one
parents: 15
diff changeset
56 }
13
7c544969d4c9 add TransactionPersocondMeasurement
one
parents:
diff changeset
57
19
17cc11b04157 change read function for transactionPerSecond
one
parents: 18
diff changeset
58 WriteJungleThread writeThread = new WriteJungleThread(null);
17
917ecf2c7350 function Measurement
one
parents: 15
diff changeset
59 writeThread.start();
917ecf2c7350 function Measurement
one
parents: 15
diff changeset
60 for (int count = 0; THREAD_COUNT > count; count++) {
917ecf2c7350 function Measurement
one
parents: 15
diff changeset
61 readThread[count].start();
917ecf2c7350 function Measurement
one
parents: 15
diff changeset
62 }
917ecf2c7350 function Measurement
one
parents: 15
diff changeset
63
917ecf2c7350 function Measurement
one
parents: 15
diff changeset
64 System.out.println("StartThread");
917ecf2c7350 function Measurement
one
parents: 15
diff changeset
65
18
190890be73e4 TreeMap memory and TreeMap get
one
parents: 17
diff changeset
66 Thread.sleep(1000);
17
917ecf2c7350 function Measurement
one
parents: 15
diff changeset
67 writeThread.set(false);
917ecf2c7350 function Measurement
one
parents: 15
diff changeset
68 int readCount = 0;
917ecf2c7350 function Measurement
one
parents: 15
diff changeset
69
917ecf2c7350 function Measurement
one
parents: 15
diff changeset
70 for (int count = 0; THREAD_COUNT > count; count++) {
917ecf2c7350 function Measurement
one
parents: 15
diff changeset
71 readCount = readCount + readThread[count].getFindCount();
917ecf2c7350 function Measurement
one
parents: 15
diff changeset
72 readThread[count].set(false);
917ecf2c7350 function Measurement
one
parents: 15
diff changeset
73 System.out.println(readThread[count].getFindCount());
917ecf2c7350 function Measurement
one
parents: 15
diff changeset
74 }
917ecf2c7350 function Measurement
one
parents: 15
diff changeset
75
13
7c544969d4c9 add TransactionPersocondMeasurement
one
parents:
diff changeset
76
17
917ecf2c7350 function Measurement
one
parents: 15
diff changeset
77 pw.println(THREAD_COUNT + " " + readCount);
917ecf2c7350 function Measurement
one
parents: 15
diff changeset
78 System.out.println(THREAD_COUNT + "readCount = " + readCount);
917ecf2c7350 function Measurement
one
parents: 15
diff changeset
79 Thread.sleep(1000);
917ecf2c7350 function Measurement
one
parents: 15
diff changeset
80 }
917ecf2c7350 function Measurement
one
parents: 15
diff changeset
81 pw.close();
917ecf2c7350 function Measurement
one
parents: 15
diff changeset
82 }
13
7c544969d4c9 add TransactionPersocondMeasurement
one
parents:
diff changeset
83
19
17cc11b04157 change read function for transactionPerSecond
one
parents: 18
diff changeset
84 private static void readOnly(JuGrix jugrix) throws InterruptedException, IOException {
17cc11b04157 change read function for transactionPerSecond
one
parents: 18
diff changeset
85 System.out.println("read onlya");
17
917ecf2c7350 function Measurement
one
parents: 15
diff changeset
86 File file = new File("./time/readOnly");
917ecf2c7350 function Measurement
one
parents: 15
diff changeset
87 PrintWriter pw = new PrintWriter(new BufferedWriter(new FileWriter(file)));
917ecf2c7350 function Measurement
one
parents: 15
diff changeset
88 for (int THREAD_COUNT = 1; THREAD_COUNT <= 12; THREAD_COUNT++) {
917ecf2c7350 function Measurement
one
parents: 15
diff changeset
89 ReadJungleThread readThread[] = new ReadJungleThread[THREAD_COUNT];
917ecf2c7350 function Measurement
one
parents: 15
diff changeset
90 ;
917ecf2c7350 function Measurement
one
parents: 15
diff changeset
91 for (int count = 0; THREAD_COUNT > count; count++) {
19
17cc11b04157 change read function for transactionPerSecond
one
parents: 18
diff changeset
92 readThread[count] = new ReadJungleThread(jugrix);
17
917ecf2c7350 function Measurement
one
parents: 15
diff changeset
93 }
13
7c544969d4c9 add TransactionPersocondMeasurement
one
parents:
diff changeset
94
17
917ecf2c7350 function Measurement
one
parents: 15
diff changeset
95 for (int count = 0; THREAD_COUNT > count; count++) {
917ecf2c7350 function Measurement
one
parents: 15
diff changeset
96 readThread[count].start();
917ecf2c7350 function Measurement
one
parents: 15
diff changeset
97 }
917ecf2c7350 function Measurement
one
parents: 15
diff changeset
98
917ecf2c7350 function Measurement
one
parents: 15
diff changeset
99 System.out.println("StartThread");
917ecf2c7350 function Measurement
one
parents: 15
diff changeset
100
18
190890be73e4 TreeMap memory and TreeMap get
one
parents: 17
diff changeset
101 Thread.sleep(1000);
17
917ecf2c7350 function Measurement
one
parents: 15
diff changeset
102 int readCount = 0;
13
7c544969d4c9 add TransactionPersocondMeasurement
one
parents:
diff changeset
103
17
917ecf2c7350 function Measurement
one
parents: 15
diff changeset
104 for (int count = 0; THREAD_COUNT > count; count++) {
917ecf2c7350 function Measurement
one
parents: 15
diff changeset
105 readCount = readCount + readThread[count].getFindCount();
917ecf2c7350 function Measurement
one
parents: 15
diff changeset
106 readThread[count].set(false);
917ecf2c7350 function Measurement
one
parents: 15
diff changeset
107 System.out.println(readThread[count].getFindCount());
917ecf2c7350 function Measurement
one
parents: 15
diff changeset
108 }
917ecf2c7350 function Measurement
one
parents: 15
diff changeset
109 pw.println(THREAD_COUNT + " " + readCount);
917ecf2c7350 function Measurement
one
parents: 15
diff changeset
110 System.out.println(THREAD_COUNT + "readCount = " + readCount);
917ecf2c7350 function Measurement
one
parents: 15
diff changeset
111 }
917ecf2c7350 function Measurement
one
parents: 15
diff changeset
112 pw.close();
917ecf2c7350 function Measurement
one
parents: 15
diff changeset
113 }
917ecf2c7350 function Measurement
one
parents: 15
diff changeset
114
917ecf2c7350 function Measurement
one
parents: 15
diff changeset
115 static String key = "KEY";
917ecf2c7350 function Measurement
one
parents: 15
diff changeset
116
917ecf2c7350 function Measurement
one
parents: 15
diff changeset
117 public static JungleTreeEditor createTree(int deep, NodePath path, JungleTreeEditor editor) {
13
7c544969d4c9 add TransactionPersocondMeasurement
one
parents:
diff changeset
118
17
917ecf2c7350 function Measurement
one
parents: 15
diff changeset
119 Random rnd = new Random();
917ecf2c7350 function Measurement
one
parents: 15
diff changeset
120 String value1 = String.valueOf(rnd.nextInt(1000));
917ecf2c7350 function Measurement
one
parents: 15
diff changeset
121 String value2 = String.valueOf(rnd.nextInt(1000));
917ecf2c7350 function Measurement
one
parents: 15
diff changeset
122 editor = editor.addNewChildAt(path, 0).b();
917ecf2c7350 function Measurement
one
parents: 15
diff changeset
123 editor = editor.putAttribute(path.add(0), key, ByteBuffer.wrap(value1.getBytes())).b();
917ecf2c7350 function Measurement
one
parents: 15
diff changeset
124 editor = editor.addNewChildAt(path, 1).b();
917ecf2c7350 function Measurement
one
parents: 15
diff changeset
125 editor = editor.putAttribute(path.add(0), key, ByteBuffer.wrap(value2.toString().getBytes())).b();
917ecf2c7350 function Measurement
one
parents: 15
diff changeset
126 deep++;
13
7c544969d4c9 add TransactionPersocondMeasurement
one
parents:
diff changeset
127
18
190890be73e4 TreeMap memory and TreeMap get
one
parents: 17
diff changeset
128 if (deep < 12) {
17
917ecf2c7350 function Measurement
one
parents: 15
diff changeset
129 editor = createTree(deep, path.add(0), editor);
917ecf2c7350 function Measurement
one
parents: 15
diff changeset
130 editor = createTree(deep, path.add(1), editor);
13
7c544969d4c9 add TransactionPersocondMeasurement
one
parents:
diff changeset
131 }
17
917ecf2c7350 function Measurement
one
parents: 15
diff changeset
132 return editor;
917ecf2c7350 function Measurement
one
parents: 15
diff changeset
133 }
13
7c544969d4c9 add TransactionPersocondMeasurement
one
parents:
diff changeset
134 }