annotate src/main/java/jp/ac/u_ryukyu/ie/cr/tatsuki/jungle/test/TreeMapBenchMark.java @ 183:066d9c5758dc

change TreeContext
author tatsuki
date Mon, 23 Mar 2015 15:44:28 +0900
parents 2e6ca84686da
children 6d125ba315d8
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
179
817febd9c69b change transaction
tatsuki
parents:
diff changeset
1 package jp.ac.u_ryukyu.ie.cr.tatsuki.jungle.test;
817febd9c69b change transaction
tatsuki
parents:
diff changeset
2
180
2e6ca84686da refactor TreeMap BenchMark
tatsuki
parents: 179
diff changeset
3 import fj.Ord;
183
066d9c5758dc change TreeContext
tatsuki
parents: 180
diff changeset
4 import fj.data.List;
066d9c5758dc change TreeContext
tatsuki
parents: 180
diff changeset
5 import fj.data.Option;
180
2e6ca84686da refactor TreeMap BenchMark
tatsuki
parents: 179
diff changeset
6 import fj.data.TreeMap;
179
817febd9c69b change transaction
tatsuki
parents:
diff changeset
7 import org.xml.sax.SAXException;
817febd9c69b change transaction
tatsuki
parents:
diff changeset
8
817febd9c69b change transaction
tatsuki
parents:
diff changeset
9 import javax.xml.parsers.ParserConfigurationException;
817febd9c69b change transaction
tatsuki
parents:
diff changeset
10 import java.io.*;
817febd9c69b change transaction
tatsuki
parents:
diff changeset
11
817febd9c69b change transaction
tatsuki
parents:
diff changeset
12 /**
817febd9c69b change transaction
tatsuki
parents:
diff changeset
13 * Created by e115731 on 15/03/17.
817febd9c69b change transaction
tatsuki
parents:
diff changeset
14 */
817febd9c69b change transaction
tatsuki
parents:
diff changeset
15 public class TreeMapBenchMark {
817febd9c69b change transaction
tatsuki
parents:
diff changeset
16 public static void main(String[] args) throws InterruptedException, IOException, ParserConfigurationException, SAXException {
180
2e6ca84686da refactor TreeMap BenchMark
tatsuki
parents: 179
diff changeset
17
179
817febd9c69b change transaction
tatsuki
parents:
diff changeset
18
180
2e6ca84686da refactor TreeMap BenchMark
tatsuki
parents: 179
diff changeset
19 if (args.length == 0) {
183
066d9c5758dc change TreeContext
tatsuki
parents: 180
diff changeset
20 System.out.println("args get or getLoop or list");
180
2e6ca84686da refactor TreeMap BenchMark
tatsuki
parents: 179
diff changeset
21 System.exit(0);
2e6ca84686da refactor TreeMap BenchMark
tatsuki
parents: 179
diff changeset
22 }
2e6ca84686da refactor TreeMap BenchMark
tatsuki
parents: 179
diff changeset
23
179
817febd9c69b change transaction
tatsuki
parents:
diff changeset
24 Runtime rt = Runtime.getRuntime();
817febd9c69b change transaction
tatsuki
parents:
diff changeset
25 int cpuNum = rt.availableProcessors();
817febd9c69b change transaction
tatsuki
parents:
diff changeset
26
183
066d9c5758dc change TreeContext
tatsuki
parents: 180
diff changeset
27 File file = new File("./time/" + args[0] + "Time");
180
2e6ca84686da refactor TreeMap BenchMark
tatsuki
parents: 179
diff changeset
28
179
817febd9c69b change transaction
tatsuki
parents:
diff changeset
29 PrintWriter pw = new PrintWriter(new BufferedWriter(new FileWriter(file)));
180
2e6ca84686da refactor TreeMap BenchMark
tatsuki
parents: 179
diff changeset
30
2e6ca84686da refactor TreeMap BenchMark
tatsuki
parents: 179
diff changeset
31 AbstractTreeMapThread readThread[] = null;
2e6ca84686da refactor TreeMap BenchMark
tatsuki
parents: 179
diff changeset
32
183
066d9c5758dc change TreeContext
tatsuki
parents: 180
diff changeset
33 TreeMap<String, String> map = TreeMap.empty(Ord.stringOrd);
066d9c5758dc change TreeContext
tatsuki
parents: 180
diff changeset
34 List<String> list = List.nil();
066d9c5758dc change TreeContext
tatsuki
parents: 180
diff changeset
35 if (args[0].equals("list")) {
066d9c5758dc change TreeContext
tatsuki
parents: 180
diff changeset
36 for (int count = 0 ;count < 100 ; count++) {
066d9c5758dc change TreeContext
tatsuki
parents: 180
diff changeset
37 list = list.cons(String.valueOf(count));
066d9c5758dc change TreeContext
tatsuki
parents: 180
diff changeset
38 }
066d9c5758dc change TreeContext
tatsuki
parents: 180
diff changeset
39 }
066d9c5758dc change TreeContext
tatsuki
parents: 180
diff changeset
40 for (int count = 0 ;count < 1000 ; count++) {
066d9c5758dc change TreeContext
tatsuki
parents: 180
diff changeset
41 map = map.set(String.valueOf(count), String.valueOf(count));
066d9c5758dc change TreeContext
tatsuki
parents: 180
diff changeset
42 }
066d9c5758dc change TreeContext
tatsuki
parents: 180
diff changeset
43 for (int THREAD_COUNT = 1; THREAD_COUNT <= cpuNum; THREAD_COUNT++) {
066d9c5758dc change TreeContext
tatsuki
parents: 180
diff changeset
44
180
2e6ca84686da refactor TreeMap BenchMark
tatsuki
parents: 179
diff changeset
45 readThread = new AbstractTreeMapThread[THREAD_COUNT];
2e6ca84686da refactor TreeMap BenchMark
tatsuki
parents: 179
diff changeset
46
183
066d9c5758dc change TreeContext
tatsuki
parents: 180
diff changeset
47 if (args[0].equals("getLoop")) {
180
2e6ca84686da refactor TreeMap BenchMark
tatsuki
parents: 179
diff changeset
48 for (int count = 0; THREAD_COUNT > count; count++) {
183
066d9c5758dc change TreeContext
tatsuki
parents: 180
diff changeset
49 readThread[count] = new FJTreeMapGetLoopThread(map);
180
2e6ca84686da refactor TreeMap BenchMark
tatsuki
parents: 179
diff changeset
50 }
183
066d9c5758dc change TreeContext
tatsuki
parents: 180
diff changeset
51 } else if (args[0].equals("get")) {
180
2e6ca84686da refactor TreeMap BenchMark
tatsuki
parents: 179
diff changeset
52 for (int count = 0; THREAD_COUNT > count; count++) {
183
066d9c5758dc change TreeContext
tatsuki
parents: 180
diff changeset
53 readThread[count] = new FJTreeMapGetIteratorThread(map);
180
2e6ca84686da refactor TreeMap BenchMark
tatsuki
parents: 179
diff changeset
54 }
183
066d9c5758dc change TreeContext
tatsuki
parents: 180
diff changeset
55 } else if (args[0].equals("list")) {
066d9c5758dc change TreeContext
tatsuki
parents: 180
diff changeset
56 for (int count = 0; THREAD_COUNT > count; count++) {
066d9c5758dc change TreeContext
tatsuki
parents: 180
diff changeset
57 readThread[count] = new FJListAccessThread(Option.<List<String>>some(list));
066d9c5758dc change TreeContext
tatsuki
parents: 180
diff changeset
58 }
066d9c5758dc change TreeContext
tatsuki
parents: 180
diff changeset
59 } else{
180
2e6ca84686da refactor TreeMap BenchMark
tatsuki
parents: 179
diff changeset
60 System.out.println("not allow args");
2e6ca84686da refactor TreeMap BenchMark
tatsuki
parents: 179
diff changeset
61 System.exit(0);
2e6ca84686da refactor TreeMap BenchMark
tatsuki
parents: 179
diff changeset
62 }
179
817febd9c69b change transaction
tatsuki
parents:
diff changeset
63
817febd9c69b change transaction
tatsuki
parents:
diff changeset
64 for (int count = 0; THREAD_COUNT > count; count++) {
817febd9c69b change transaction
tatsuki
parents:
diff changeset
65 readThread[count].start();
817febd9c69b change transaction
tatsuki
parents:
diff changeset
66 }
817febd9c69b change transaction
tatsuki
parents:
diff changeset
67
817febd9c69b change transaction
tatsuki
parents:
diff changeset
68 System.out.println("StartThread");
817febd9c69b change transaction
tatsuki
parents:
diff changeset
69
817febd9c69b change transaction
tatsuki
parents:
diff changeset
70 Thread.sleep(1000);
817febd9c69b change transaction
tatsuki
parents:
diff changeset
71 long readCount = 0;
817febd9c69b change transaction
tatsuki
parents:
diff changeset
72
817febd9c69b change transaction
tatsuki
parents:
diff changeset
73 for (int count = 0; THREAD_COUNT > count; count++) {
817febd9c69b change transaction
tatsuki
parents:
diff changeset
74 readCount = readCount + readThread[count].getFindCount();
817febd9c69b change transaction
tatsuki
parents:
diff changeset
75 readThread[count].set(false);
817febd9c69b change transaction
tatsuki
parents:
diff changeset
76 }
817febd9c69b change transaction
tatsuki
parents:
diff changeset
77
817febd9c69b change transaction
tatsuki
parents:
diff changeset
78 pw.println(THREAD_COUNT + " " + readCount);
817febd9c69b change transaction
tatsuki
parents:
diff changeset
79 System.out.println(THREAD_COUNT + "readCount = " + readCount);
817febd9c69b change transaction
tatsuki
parents:
diff changeset
80 }
817febd9c69b change transaction
tatsuki
parents:
diff changeset
81
817febd9c69b change transaction
tatsuki
parents:
diff changeset
82 pw.close();
817febd9c69b change transaction
tatsuki
parents:
diff changeset
83 }
817febd9c69b change transaction
tatsuki
parents:
diff changeset
84
817febd9c69b change transaction
tatsuki
parents:
diff changeset
85 }