Mercurial > hg > Members > tatsuki > jungle-bench
view 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 |
line wrap: on
line source
package jp.ac.u_ryukyu.ie.cr.tatsuki.xml; import java.io.BufferedWriter; import java.io.File; import java.io.FileNotFoundException; import java.io.FileWriter; import java.io.IOException; import java.io.PrintWriter; import java.util.Iterator; import java.util.LinkedList; import java.util.Random; import javax.xml.parsers.ParserConfigurationException; import org.xml.sax.SAXException; import jp.ac.u_ryukyu.cr.ie.tatsuki.bbs.JuGrix; public class TimeMeasurementJuGrixFunction { static int roopCount = 10; static boolean useIndex = true; static LinkedList<Long> functionTimeLinkedList = new LinkedList<Long>(); static int maxPersonCount = 1000; public static void main(String args[]) throws FileNotFoundException, ParserConfigurationException, SAXException, IOException { System.out.println("start : "); String orgId = "o:2"; String personId = "p:1"; LinkedList<String> filterIds = new LinkedList<String>(); // filterIds.add("r:5"); long t2; long t1; for (int personCount = 100; maxPersonCount >= personCount;) { JuGrix jugrix = extendXmlTree.createJuGrix(useIndex, personCount); Random random = new Random(); functions(jugrix, orgId, personId, filterIds); functionTimeLinkedList = new LinkedList<Long>(); long sumTime = 0; for (int count = 0; count < roopCount; count++) { int ran = random.nextInt(28); orgId = "o:" + String.valueOf(ran + 1); ran = random.nextInt(30); personId = "p:" + String.valueOf(ran + 1); t1 = System.currentTimeMillis(); functions(jugrix, orgId, personId, filterIds); t2 = System.currentTimeMillis(); sumTime = (t2 - t1) + sumTime; System.out.println(count + "回目=" + (t2 - t1) + "s"); } getFunctionTimes(personCount); System.out.println("平均 = " + (sumTime / 10) + "s"); personCount = personCount + 100; } System.out.println("end"); } private static void getFunctionTimes(int personCount) throws IOException { for (int i = 0; i < 15; i++) { long time = 0; for (int j = 0; j < 10; j++) { long functionTime = functionTimeLinkedList.get(i + (j * 15)); time = time + functionTime; } String functionName = ""; switch (i) { case 0: functionName = "childOrganizationIds"; break; case 1: functionName = "competentRoleId"; break; case 2: functionName = "concurrentRoleIds"; break; case 3: functionName = "deepChildOrganizationIds"; break; case 4: functionName = "deepChildOrganizationIdsPlus"; break; case 5: functionName = "deepParentOrganizationIds"; break; case 6: functionName = "deepParentOrganizationIdsPlus"; break; case 7: functionName = "deepPersonIds"; break; case 8: functionName = "isActive"; break; case 9: functionName = "parentOrganizationIds"; break; case 10: functionName = "personIds"; break; case 11: functionName = "roleDescriptionElementIds"; break; case 12: functionName = "roleIds"; break; case 13: functionName = "rolePriority"; break; case 14: functionName = "stringPathToId"; break; } File file = new File("./time/function/" + functionName); PrintWriter pw = new PrintWriter(new BufferedWriter(new FileWriter(file, true))); pw.println(personCount + " " + (time / 10)); pw.close(); System.out.println(functionName + " AVERAGE = " + (time / 10)); } } private static void functions(JuGrix jugrix, String orgId, String personId, LinkedList<String> filterIds) { long t1 = System.currentTimeMillis(); Iterator<String> tmp = jugrix.childOrganizationIds(orgId, filterIds, "v:1"); for (; tmp.hasNext();) { tmp.next(); } long t2 = System.currentTimeMillis(); tmp = jugrix.competentRoleId(personId, "v:1"); for (; tmp.hasNext();) { tmp.next(); } long t3 = System.currentTimeMillis(); tmp = jugrix.concurrentRoleIds(personId, "v:1"); for (; tmp.hasNext();) { tmp.next(); } long t4 = System.currentTimeMillis(); tmp = jugrix.deepChildOrganizationIds(orgId, filterIds, "v:1"); for (; tmp.hasNext();) { tmp.next(); } long t5 = System.currentTimeMillis(); tmp = jugrix.deepChildOrganizationIdsPlus(orgId, filterIds, "v:1"); for (; tmp.hasNext();) { tmp.next(); } long t6 = System.currentTimeMillis(); tmp = jugrix.deepParentOrganizationIds(orgId, filterIds, "v:1"); for (; tmp.hasNext();) { tmp.next(); } long t7 = System.currentTimeMillis(); tmp = jugrix.deepParentOrganizationIdsPlus(orgId, filterIds, "v:1"); for (; tmp.hasNext();) { tmp.next(); } long t8 = System.currentTimeMillis(); tmp = jugrix.deepPersonIds(orgId, filterIds, "v:1"); for (; tmp.hasNext();) { tmp.next(); } long t9 = System.currentTimeMillis(); jugrix.isActive(personId, "v:1"); for (; tmp.hasNext();) { tmp.next(); } long t10 = System.currentTimeMillis(); tmp = jugrix.parentOrganizationIds(orgId, filterIds, "v:1"); for (; tmp.hasNext();) { tmp.next(); } long t11 = System.currentTimeMillis(); tmp = jugrix.personIds(orgId, filterIds, "v:1"); for (; tmp.hasNext();) { tmp.next(); } long t12 = System.currentTimeMillis(); tmp = jugrix.roleDescriptionElementIds(orgId, filterIds, "v:1"); for (; tmp.hasNext();) { tmp.next(); } long t13 = System.currentTimeMillis(); tmp = jugrix.roleIds(orgId, filterIds, "v:1"); for (; tmp.hasNext();) { tmp.next(); } long t14 = System.currentTimeMillis(); jugrix.rolePriority(personId, "r:34", "v:1"); long t15 = System.currentTimeMillis(); jugrix.stringPathToId("r:path:エスアールエルテクノシステム/臨検システム部/業務システムグループ", "v:1"); long t16 = System.currentTimeMillis(); functionTimeLinkedList.add(t2 - t1); functionTimeLinkedList.add(t3 - t2); functionTimeLinkedList.add(t4 - t3); functionTimeLinkedList.add(t5 - t4); functionTimeLinkedList.add(t6 - t5); functionTimeLinkedList.add(t7 - t6); functionTimeLinkedList.add(t8 - t7); functionTimeLinkedList.add(t9 - t8); functionTimeLinkedList.add(t10 - t9); functionTimeLinkedList.add(t11 - t10); functionTimeLinkedList.add(t12 - t11); // long aaa = (t12 - t11); // if (aaa > 500) { // System.out.println("aaaa---------------------------------------"); // long t17 = System.currentTimeMillis(); // Iterator<String> tmp = jugrix.personIds(orgId, filterIds, "v:1"); // tmp.hasNext(); // long t18 = System.currentTimeMillis(); // System.out.println("all = " + (t18 - t17)); // long t19 = System.currentTimeMillis(); // tmp.hasNext(); // long t20 = System.currentTimeMillis(); // System.out.println("has next only = " + (t20 - t19)); // if ((t20 - t17) > 100) { // System.out.println("aaaa---------------------------------------"); // System.out.println(tmp.next()); // System.out.println("aaaa---------------------------------------"); // } // } functionTimeLinkedList.add(t13 - t12); functionTimeLinkedList.add(t14 - t13); functionTimeLinkedList.add(t15 - t14); functionTimeLinkedList.add(t16 - t15); } }