annotate src/main/java/jp/ac/u_ryukyu/ie/cr/tatsuki/xml/TransactionPerSecondMeasurement.java @ 20:195c1a644550

benchmark add
author tatsuki
date Tue, 17 Mar 2015 15:37:19 +0900
parents 17cc11b04157
children c8d8864714d4
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.JungleTreeEditor;
7c544969d4c9 add TransactionPersocondMeasurement
one
parents:
diff changeset
17 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.NodePath;
7c544969d4c9 add TransactionPersocondMeasurement
one
parents:
diff changeset
18
7c544969d4c9 add TransactionPersocondMeasurement
one
parents:
diff changeset
19 public class TransactionPerSecondMeasurement {
7c544969d4c9 add TransactionPersocondMeasurement
one
parents:
diff changeset
20
19
17cc11b04157 change read function for transactionPerSecond
one
parents: 18
diff changeset
21 public static void main(String[] args) throws InterruptedException, IOException, ParserConfigurationException, SAXException {
20
195c1a644550 benchmark add
tatsuki
parents: 19
diff changeset
22 System.out.println("endCreatejugrix");
195c1a644550 benchmark add
tatsuki
parents: 19
diff changeset
23 JuGrix jugrix = extendXmlTree.createJuGrix(true,400);
19
17cc11b04157 change read function for transactionPerSecond
one
parents: 18
diff changeset
24 System.out.println(Runtime.getRuntime().availableProcessors());
13
7c544969d4c9 add TransactionPersocondMeasurement
one
parents:
diff changeset
25
17
917ecf2c7350 function Measurement
one
parents: 15
diff changeset
26 if (args.length > 0) {
19
17cc11b04157 change read function for transactionPerSecond
one
parents: 18
diff changeset
27
17
917ecf2c7350 function Measurement
one
parents: 15
diff changeset
28 if (args[0].equals("read"))
19
17cc11b04157 change read function for transactionPerSecond
one
parents: 18
diff changeset
29 readOnly(jugrix);
17
917ecf2c7350 function Measurement
one
parents: 15
diff changeset
30 if (args[0].equals("write"))
19
17cc11b04157 change read function for transactionPerSecond
one
parents: 18
diff changeset
31 readAndWrite(jugrix);
17cc11b04157 change read function for transactionPerSecond
one
parents: 18
diff changeset
32
17
917ecf2c7350 function Measurement
one
parents: 15
diff changeset
33 } else
917ecf2c7350 function Measurement
one
parents: 15
diff changeset
34 System.out.println("Please with the argument");
917ecf2c7350 function Measurement
one
parents: 15
diff changeset
35 }
13
7c544969d4c9 add TransactionPersocondMeasurement
one
parents:
diff changeset
36
19
17cc11b04157 change read function for transactionPerSecond
one
parents: 18
diff changeset
37 private static void readAndWrite(JuGrix jugrix) throws InterruptedException, IOException {
17
917ecf2c7350 function Measurement
one
parents: 15
diff changeset
38 System.out.println("read and write");
20
195c1a644550 benchmark add
tatsuki
parents: 19
diff changeset
39 Runtime rt = Runtime.getRuntime();
195c1a644550 benchmark add
tatsuki
parents: 19
diff changeset
40 int cpuNum = rt.availableProcessors();
195c1a644550 benchmark add
tatsuki
parents: 19
diff changeset
41
195c1a644550 benchmark add
tatsuki
parents: 19
diff changeset
42 File file = new File("./time/newTransactionReadAndWrite");
17
917ecf2c7350 function Measurement
one
parents: 15
diff changeset
43 PrintWriter pw = new PrintWriter(new BufferedWriter(new FileWriter(file)));
20
195c1a644550 benchmark add
tatsuki
parents: 19
diff changeset
44
195c1a644550 benchmark add
tatsuki
parents: 19
diff changeset
45 for (int THREAD_COUNT = 1; THREAD_COUNT <= cpuNum; THREAD_COUNT++) {
17
917ecf2c7350 function Measurement
one
parents: 15
diff changeset
46 ReadJungleThread readThread[] = new ReadJungleThread[THREAD_COUNT];
917ecf2c7350 function Measurement
one
parents: 15
diff changeset
47 for (int count = 0; THREAD_COUNT > count; count++) {
19
17cc11b04157 change read function for transactionPerSecond
one
parents: 18
diff changeset
48 readThread[count] = new ReadJungleThread(jugrix);
17
917ecf2c7350 function Measurement
one
parents: 15
diff changeset
49 }
13
7c544969d4c9 add TransactionPersocondMeasurement
one
parents:
diff changeset
50
20
195c1a644550 benchmark add
tatsuki
parents: 19
diff changeset
51 WriteJungleThread writeThread = new WriteJungleThread(jugrix);
17
917ecf2c7350 function Measurement
one
parents: 15
diff changeset
52 writeThread.start();
917ecf2c7350 function Measurement
one
parents: 15
diff changeset
53 for (int count = 0; THREAD_COUNT > count; count++) {
917ecf2c7350 function Measurement
one
parents: 15
diff changeset
54 readThread[count].start();
917ecf2c7350 function Measurement
one
parents: 15
diff changeset
55 }
917ecf2c7350 function Measurement
one
parents: 15
diff changeset
56
917ecf2c7350 function Measurement
one
parents: 15
diff changeset
57 System.out.println("StartThread");
917ecf2c7350 function Measurement
one
parents: 15
diff changeset
58
18
190890be73e4 TreeMap memory and TreeMap get
one
parents: 17
diff changeset
59 Thread.sleep(1000);
17
917ecf2c7350 function Measurement
one
parents: 15
diff changeset
60 writeThread.set(false);
917ecf2c7350 function Measurement
one
parents: 15
diff changeset
61 int readCount = 0;
917ecf2c7350 function Measurement
one
parents: 15
diff changeset
62
917ecf2c7350 function Measurement
one
parents: 15
diff changeset
63 for (int count = 0; THREAD_COUNT > count; count++) {
917ecf2c7350 function Measurement
one
parents: 15
diff changeset
64 readCount = readCount + readThread[count].getFindCount();
917ecf2c7350 function Measurement
one
parents: 15
diff changeset
65 readThread[count].set(false);
917ecf2c7350 function Measurement
one
parents: 15
diff changeset
66 }
917ecf2c7350 function Measurement
one
parents: 15
diff changeset
67
13
7c544969d4c9 add TransactionPersocondMeasurement
one
parents:
diff changeset
68
17
917ecf2c7350 function Measurement
one
parents: 15
diff changeset
69 pw.println(THREAD_COUNT + " " + readCount);
917ecf2c7350 function Measurement
one
parents: 15
diff changeset
70 System.out.println(THREAD_COUNT + "readCount = " + readCount);
917ecf2c7350 function Measurement
one
parents: 15
diff changeset
71 Thread.sleep(1000);
917ecf2c7350 function Measurement
one
parents: 15
diff changeset
72 }
917ecf2c7350 function Measurement
one
parents: 15
diff changeset
73 pw.close();
917ecf2c7350 function Measurement
one
parents: 15
diff changeset
74 }
13
7c544969d4c9 add TransactionPersocondMeasurement
one
parents:
diff changeset
75
19
17cc11b04157 change read function for transactionPerSecond
one
parents: 18
diff changeset
76 private static void readOnly(JuGrix jugrix) throws InterruptedException, IOException {
20
195c1a644550 benchmark add
tatsuki
parents: 19
diff changeset
77 System.out.println("read only");
195c1a644550 benchmark add
tatsuki
parents: 19
diff changeset
78 Runtime rt = Runtime.getRuntime();
195c1a644550 benchmark add
tatsuki
parents: 19
diff changeset
79 int cpuNum = rt.availableProcessors();
195c1a644550 benchmark add
tatsuki
parents: 19
diff changeset
80
17
917ecf2c7350 function Measurement
one
parents: 15
diff changeset
81 File file = new File("./time/readOnly");
917ecf2c7350 function Measurement
one
parents: 15
diff changeset
82 PrintWriter pw = new PrintWriter(new BufferedWriter(new FileWriter(file)));
20
195c1a644550 benchmark add
tatsuki
parents: 19
diff changeset
83 for (int THREAD_COUNT = 1; THREAD_COUNT <= cpuNum; THREAD_COUNT++) {
17
917ecf2c7350 function Measurement
one
parents: 15
diff changeset
84 ReadJungleThread readThread[] = new ReadJungleThread[THREAD_COUNT];
917ecf2c7350 function Measurement
one
parents: 15
diff changeset
85 ;
917ecf2c7350 function Measurement
one
parents: 15
diff changeset
86 for (int count = 0; THREAD_COUNT > count; count++) {
19
17cc11b04157 change read function for transactionPerSecond
one
parents: 18
diff changeset
87 readThread[count] = new ReadJungleThread(jugrix);
17
917ecf2c7350 function Measurement
one
parents: 15
diff changeset
88 }
13
7c544969d4c9 add TransactionPersocondMeasurement
one
parents:
diff changeset
89
17
917ecf2c7350 function Measurement
one
parents: 15
diff changeset
90 for (int count = 0; THREAD_COUNT > count; count++) {
917ecf2c7350 function Measurement
one
parents: 15
diff changeset
91 readThread[count].start();
917ecf2c7350 function Measurement
one
parents: 15
diff changeset
92 }
917ecf2c7350 function Measurement
one
parents: 15
diff changeset
93
917ecf2c7350 function Measurement
one
parents: 15
diff changeset
94 System.out.println("StartThread");
917ecf2c7350 function Measurement
one
parents: 15
diff changeset
95
18
190890be73e4 TreeMap memory and TreeMap get
one
parents: 17
diff changeset
96 Thread.sleep(1000);
17
917ecf2c7350 function Measurement
one
parents: 15
diff changeset
97 int readCount = 0;
13
7c544969d4c9 add TransactionPersocondMeasurement
one
parents:
diff changeset
98
17
917ecf2c7350 function Measurement
one
parents: 15
diff changeset
99 for (int count = 0; THREAD_COUNT > count; count++) {
917ecf2c7350 function Measurement
one
parents: 15
diff changeset
100 readCount = readCount + readThread[count].getFindCount();
917ecf2c7350 function Measurement
one
parents: 15
diff changeset
101 readThread[count].set(false);
917ecf2c7350 function Measurement
one
parents: 15
diff changeset
102 }
20
195c1a644550 benchmark add
tatsuki
parents: 19
diff changeset
103
17
917ecf2c7350 function Measurement
one
parents: 15
diff changeset
104 pw.println(THREAD_COUNT + " " + readCount);
917ecf2c7350 function Measurement
one
parents: 15
diff changeset
105 System.out.println(THREAD_COUNT + "readCount = " + readCount);
917ecf2c7350 function Measurement
one
parents: 15
diff changeset
106 }
20
195c1a644550 benchmark add
tatsuki
parents: 19
diff changeset
107
17
917ecf2c7350 function Measurement
one
parents: 15
diff changeset
108 pw.close();
917ecf2c7350 function Measurement
one
parents: 15
diff changeset
109 }
917ecf2c7350 function Measurement
one
parents: 15
diff changeset
110
917ecf2c7350 function Measurement
one
parents: 15
diff changeset
111 static String key = "KEY";
917ecf2c7350 function Measurement
one
parents: 15
diff changeset
112
917ecf2c7350 function Measurement
one
parents: 15
diff changeset
113 public static JungleTreeEditor createTree(int deep, NodePath path, JungleTreeEditor editor) {
13
7c544969d4c9 add TransactionPersocondMeasurement
one
parents:
diff changeset
114
17
917ecf2c7350 function Measurement
one
parents: 15
diff changeset
115 Random rnd = new Random();
917ecf2c7350 function Measurement
one
parents: 15
diff changeset
116 String value1 = String.valueOf(rnd.nextInt(1000));
917ecf2c7350 function Measurement
one
parents: 15
diff changeset
117 String value2 = String.valueOf(rnd.nextInt(1000));
917ecf2c7350 function Measurement
one
parents: 15
diff changeset
118 editor = editor.addNewChildAt(path, 0).b();
917ecf2c7350 function Measurement
one
parents: 15
diff changeset
119 editor = editor.putAttribute(path.add(0), key, ByteBuffer.wrap(value1.getBytes())).b();
917ecf2c7350 function Measurement
one
parents: 15
diff changeset
120 editor = editor.addNewChildAt(path, 1).b();
917ecf2c7350 function Measurement
one
parents: 15
diff changeset
121 editor = editor.putAttribute(path.add(0), key, ByteBuffer.wrap(value2.toString().getBytes())).b();
917ecf2c7350 function Measurement
one
parents: 15
diff changeset
122 deep++;
13
7c544969d4c9 add TransactionPersocondMeasurement
one
parents:
diff changeset
123
18
190890be73e4 TreeMap memory and TreeMap get
one
parents: 17
diff changeset
124 if (deep < 12) {
17
917ecf2c7350 function Measurement
one
parents: 15
diff changeset
125 editor = createTree(deep, path.add(0), editor);
917ecf2c7350 function Measurement
one
parents: 15
diff changeset
126 editor = createTree(deep, path.add(1), editor);
13
7c544969d4c9 add TransactionPersocondMeasurement
one
parents:
diff changeset
127 }
17
917ecf2c7350 function Measurement
one
parents: 15
diff changeset
128 return editor;
917ecf2c7350 function Measurement
one
parents: 15
diff changeset
129 }
13
7c544969d4c9 add TransactionPersocondMeasurement
one
parents:
diff changeset
130 }