Mercurial > hg > Members > tatsuki > jungle-bench
annotate src/main/java/jp/ac/u_ryukyu/ie/cr/tatsuki/xml/TimeMeasurementJuGrixFunction.java @ 17:917ecf2c7350
function Measurement
author | one |
---|---|
date | Wed, 24 Dec 2014 15:48:32 +0900 |
parents | eed6235830c9 |
children | 17cc11b04157 |
rev | line source |
---|---|
15
89478f2ea07f
change src name TimeMeasurementJuGrix to TimeMeasurementJuGrixFunction
one
parents:
diff
changeset
|
1 package jp.ac.u_ryukyu.ie.cr.tatsuki.xml; |
89478f2ea07f
change src name TimeMeasurementJuGrix to TimeMeasurementJuGrixFunction
one
parents:
diff
changeset
|
2 |
17 | 3 import java.io.BufferedWriter; |
4 import java.io.File; | |
15
89478f2ea07f
change src name TimeMeasurementJuGrix to TimeMeasurementJuGrixFunction
one
parents:
diff
changeset
|
5 import java.io.FileNotFoundException; |
17 | 6 import java.io.FileWriter; |
15
89478f2ea07f
change src name TimeMeasurementJuGrix to TimeMeasurementJuGrixFunction
one
parents:
diff
changeset
|
7 import java.io.IOException; |
17 | 8 import java.io.PrintWriter; |
9 import java.util.Iterator; | |
15
89478f2ea07f
change src name TimeMeasurementJuGrix to TimeMeasurementJuGrixFunction
one
parents:
diff
changeset
|
10 import java.util.LinkedList; |
89478f2ea07f
change src name TimeMeasurementJuGrix to TimeMeasurementJuGrixFunction
one
parents:
diff
changeset
|
11 import java.util.Random; |
89478f2ea07f
change src name TimeMeasurementJuGrix to TimeMeasurementJuGrixFunction
one
parents:
diff
changeset
|
12 |
89478f2ea07f
change src name TimeMeasurementJuGrix to TimeMeasurementJuGrixFunction
one
parents:
diff
changeset
|
13 import javax.xml.parsers.ParserConfigurationException; |
89478f2ea07f
change src name TimeMeasurementJuGrix to TimeMeasurementJuGrixFunction
one
parents:
diff
changeset
|
14 |
89478f2ea07f
change src name TimeMeasurementJuGrix to TimeMeasurementJuGrixFunction
one
parents:
diff
changeset
|
15 import org.xml.sax.SAXException; |
89478f2ea07f
change src name TimeMeasurementJuGrix to TimeMeasurementJuGrixFunction
one
parents:
diff
changeset
|
16 |
89478f2ea07f
change src name TimeMeasurementJuGrix to TimeMeasurementJuGrixFunction
one
parents:
diff
changeset
|
17 import jp.ac.u_ryukyu.cr.ie.tatsuki.bbs.JuGrix; |
89478f2ea07f
change src name TimeMeasurementJuGrix to TimeMeasurementJuGrixFunction
one
parents:
diff
changeset
|
18 |
89478f2ea07f
change src name TimeMeasurementJuGrix to TimeMeasurementJuGrixFunction
one
parents:
diff
changeset
|
19 public class TimeMeasurementJuGrixFunction { |
89478f2ea07f
change src name TimeMeasurementJuGrix to TimeMeasurementJuGrixFunction
one
parents:
diff
changeset
|
20 |
17 | 21 static int roopCount = 10; |
22 static boolean useIndex = true; | |
23 static LinkedList<Long> functionTimeLinkedList = new LinkedList<Long>(); | |
24 static int maxPersonCount = 1000; | |
25 | |
26 public static void main(String args[]) throws FileNotFoundException, ParserConfigurationException, SAXException, | |
27 IOException { | |
28 | |
29 System.out.println("start : "); | |
30 | |
31 String orgId = "o:2"; | |
32 String personId = "p:1"; | |
33 LinkedList<String> filterIds = new LinkedList<String>(); | |
34 // filterIds.add("r:5"); | |
35 long t2; | |
36 long t1; | |
37 | |
38 for (int personCount = 100; maxPersonCount >= personCount;) { | |
39 | |
40 JuGrix jugrix = extendXmlTree.createJuGrix(useIndex, personCount); | |
41 Random random = new Random(); | |
15
89478f2ea07f
change src name TimeMeasurementJuGrix to TimeMeasurementJuGrixFunction
one
parents:
diff
changeset
|
42 |
17 | 43 functions(jugrix, orgId, personId, filterIds); |
44 | |
45 functionTimeLinkedList = new LinkedList<Long>(); | |
46 long sumTime = 0; | |
47 for (int count = 0; count < roopCount; count++) { | |
15
89478f2ea07f
change src name TimeMeasurementJuGrix to TimeMeasurementJuGrixFunction
one
parents:
diff
changeset
|
48 |
17 | 49 int ran = random.nextInt(28); |
50 orgId = "o:" + String.valueOf(ran + 1); | |
51 ran = random.nextInt(30); | |
52 personId = "p:" + String.valueOf(ran + 1); | |
53 t1 = System.currentTimeMillis(); | |
54 functions(jugrix, orgId, personId, filterIds); | |
55 t2 = System.currentTimeMillis(); | |
56 sumTime = (t2 - t1) + sumTime; | |
57 System.out.println(count + "回目=" + (t2 - t1) + "s"); | |
58 } | |
59 | |
60 getFunctionTimes(personCount); | |
61 | |
62 System.out.println("平均 = " + (sumTime / 10) + "s"); | |
63 personCount = personCount + 100; | |
64 } | |
65 System.out.println("end"); | |
66 } | |
15
89478f2ea07f
change src name TimeMeasurementJuGrix to TimeMeasurementJuGrixFunction
one
parents:
diff
changeset
|
67 |
17 | 68 private static void getFunctionTimes(int personCount) throws IOException { |
69 | |
70 for (int i = 0; i < 15; i++) { | |
71 long time = 0; | |
72 for (int j = 0; j < 10; j++) { | |
73 long functionTime = functionTimeLinkedList.get(i + (j * 15)); | |
74 time = time + functionTime; | |
75 } | |
76 String functionName = ""; | |
77 switch (i) { | |
78 case 0: | |
79 functionName = "childOrganizationIds"; | |
80 break; | |
81 case 1: | |
82 functionName = "competentRoleId"; | |
83 break; | |
84 case 2: | |
85 functionName = "concurrentRoleIds"; | |
86 break; | |
87 case 3: | |
88 functionName = "deepChildOrganizationIds"; | |
89 break; | |
90 case 4: | |
91 functionName = "deepChildOrganizationIdsPlus"; | |
92 break; | |
93 case 5: | |
94 functionName = "deepParentOrganizationIds"; | |
95 break; | |
96 case 6: | |
97 functionName = "deepParentOrganizationIdsPlus"; | |
98 break; | |
99 case 7: | |
100 functionName = "deepPersonIds"; | |
101 break; | |
102 case 8: | |
103 functionName = "isActive"; | |
104 break; | |
105 case 9: | |
106 functionName = "parentOrganizationIds"; | |
107 break; | |
108 case 10: | |
109 functionName = "personIds"; | |
110 break; | |
111 case 11: | |
112 functionName = "roleDescriptionElementIds"; | |
113 break; | |
114 case 12: | |
115 functionName = "roleIds"; | |
116 break; | |
117 case 13: | |
118 functionName = "rolePriority"; | |
119 break; | |
120 case 14: | |
121 functionName = "stringPathToId"; | |
122 break; | |
123 } | |
124 File file = new File("./time/function/" + functionName); | |
125 PrintWriter pw = new PrintWriter(new BufferedWriter(new | |
126 FileWriter(file, | |
127 true))); | |
128 pw.println(personCount + " " + (time / 10)); | |
129 pw.close(); | |
130 System.out.println(functionName + " AVERAGE = " + (time / 10)); | |
131 } | |
132 } | |
15
89478f2ea07f
change src name TimeMeasurementJuGrix to TimeMeasurementJuGrixFunction
one
parents:
diff
changeset
|
133 |
17 | 134 private static void functions(JuGrix jugrix, String orgId, String personId, LinkedList<String> filterIds) { |
15
89478f2ea07f
change src name TimeMeasurementJuGrix to TimeMeasurementJuGrixFunction
one
parents:
diff
changeset
|
135 |
17 | 136 long t1 = System.currentTimeMillis(); |
137 Iterator<String> tmp = jugrix.childOrganizationIds(orgId, filterIds, "v:1"); | |
138 for (; tmp.hasNext();) { | |
139 tmp.next(); | |
15
89478f2ea07f
change src name TimeMeasurementJuGrix to TimeMeasurementJuGrixFunction
one
parents:
diff
changeset
|
140 } |
89478f2ea07f
change src name TimeMeasurementJuGrix to TimeMeasurementJuGrixFunction
one
parents:
diff
changeset
|
141 |
17 | 142 long t2 = System.currentTimeMillis(); |
143 tmp = jugrix.competentRoleId(personId, "v:1"); | |
144 for (; tmp.hasNext();) { | |
145 tmp.next(); | |
146 } | |
147 long t3 = System.currentTimeMillis(); | |
148 tmp = jugrix.concurrentRoleIds(personId, "v:1"); | |
149 for (; tmp.hasNext();) { | |
150 tmp.next(); | |
151 } | |
152 | |
153 long t4 = System.currentTimeMillis(); | |
154 tmp = jugrix.deepChildOrganizationIds(orgId, filterIds, "v:1"); | |
155 for (; tmp.hasNext();) { | |
156 tmp.next(); | |
157 } | |
158 | |
159 long t5 = System.currentTimeMillis(); | |
160 tmp = jugrix.deepChildOrganizationIdsPlus(orgId, filterIds, "v:1"); | |
161 for (; tmp.hasNext();) { | |
162 tmp.next(); | |
163 } | |
164 | |
165 long t6 = System.currentTimeMillis(); | |
166 tmp = jugrix.deepParentOrganizationIds(orgId, filterIds, "v:1"); | |
167 for (; tmp.hasNext();) { | |
168 tmp.next(); | |
169 } | |
170 | |
171 long t7 = System.currentTimeMillis(); | |
172 tmp = jugrix.deepParentOrganizationIdsPlus(orgId, filterIds, "v:1"); | |
173 for (; tmp.hasNext();) { | |
174 tmp.next(); | |
175 } | |
176 | |
177 long t8 = System.currentTimeMillis(); | |
178 tmp = jugrix.deepPersonIds(orgId, filterIds, "v:1"); | |
179 for (; tmp.hasNext();) { | |
180 tmp.next(); | |
181 } | |
182 | |
183 long t9 = System.currentTimeMillis(); | |
184 jugrix.isActive(personId, "v:1"); | |
185 for (; tmp.hasNext();) { | |
186 tmp.next(); | |
187 } | |
188 | |
189 long t10 = System.currentTimeMillis(); | |
190 tmp = jugrix.parentOrganizationIds(orgId, filterIds, "v:1"); | |
191 for (; tmp.hasNext();) { | |
192 tmp.next(); | |
15
89478f2ea07f
change src name TimeMeasurementJuGrix to TimeMeasurementJuGrixFunction
one
parents:
diff
changeset
|
193 } |
17 | 194 |
195 long t11 = System.currentTimeMillis(); | |
196 tmp = jugrix.personIds(orgId, filterIds, "v:1"); | |
197 for (; tmp.hasNext();) { | |
198 tmp.next(); | |
199 } | |
200 | |
201 long t12 = System.currentTimeMillis(); | |
202 tmp = jugrix.roleDescriptionElementIds(orgId, filterIds, "v:1"); | |
203 for (; tmp.hasNext();) { | |
204 tmp.next(); | |
205 } | |
206 | |
207 long t13 = System.currentTimeMillis(); | |
208 tmp = jugrix.roleIds(orgId, filterIds, "v:1"); | |
209 for (; tmp.hasNext();) { | |
210 tmp.next(); | |
211 } | |
212 | |
213 long t14 = System.currentTimeMillis(); | |
214 jugrix.rolePriority(personId, "r:34", "v:1"); | |
215 long t15 = System.currentTimeMillis(); | |
216 jugrix.stringPathToId("r:path:エスアールエルテクノシステム/臨検システム部/業務システムグループ", "v:1"); | |
217 | |
218 long t16 = System.currentTimeMillis(); | |
219 functionTimeLinkedList.add(t2 - t1); | |
220 functionTimeLinkedList.add(t3 - t2); | |
221 functionTimeLinkedList.add(t4 - t3); | |
222 functionTimeLinkedList.add(t5 - t4); | |
223 functionTimeLinkedList.add(t6 - t5); | |
224 functionTimeLinkedList.add(t7 - t6); | |
225 functionTimeLinkedList.add(t8 - t7); | |
226 functionTimeLinkedList.add(t9 - t8); | |
227 functionTimeLinkedList.add(t10 - t9); | |
228 functionTimeLinkedList.add(t11 - t10); | |
229 functionTimeLinkedList.add(t12 - t11); | |
230 // long aaa = (t12 - t11); | |
231 // if (aaa > 500) { | |
232 // System.out.println("aaaa---------------------------------------"); | |
233 // long t17 = System.currentTimeMillis(); | |
234 // Iterator<String> tmp = jugrix.personIds(orgId, filterIds, "v:1"); | |
235 // tmp.hasNext(); | |
236 // long t18 = System.currentTimeMillis(); | |
237 // System.out.println("all = " + (t18 - t17)); | |
238 // long t19 = System.currentTimeMillis(); | |
239 // tmp.hasNext(); | |
240 // long t20 = System.currentTimeMillis(); | |
241 // System.out.println("has next only = " + (t20 - t19)); | |
242 // if ((t20 - t17) > 100) { | |
243 // System.out.println("aaaa---------------------------------------"); | |
244 // System.out.println(tmp.next()); | |
245 // System.out.println("aaaa---------------------------------------"); | |
246 // } | |
247 // } | |
248 functionTimeLinkedList.add(t13 - t12); | |
249 functionTimeLinkedList.add(t14 - t13); | |
250 functionTimeLinkedList.add(t15 - t14); | |
251 functionTimeLinkedList.add(t16 - t15); | |
252 } | |
15
89478f2ea07f
change src name TimeMeasurementJuGrix to TimeMeasurementJuGrixFunction
one
parents:
diff
changeset
|
253 } |