# HG changeset patch
# User one
# Date 1419403712 -32400
# Node ID 917ecf2c735068528aea03082328d487b4acc04e
# Parent eed6235830c95399da3680e1e4e91eceb5267c42
function Measurement
diff -r eed6235830c9 -r 917ecf2c7350 .classpath
--- a/.classpath Mon Dec 08 19:11:19 2014 +0900
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,11 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
diff -r eed6235830c9 -r 917ecf2c7350 pom.xml
--- a/pom.xml Mon Dec 08 19:11:19 2014 +0900
+++ b/pom.xml Wed Dec 24 15:48:32 2014 +0900
@@ -23,7 +23,7 @@
org.functionaljava
functionaljava
- 4.1
+ 4.2-beta-1
diff -r eed6235830c9 -r 917ecf2c7350 src/main/java/jp/ac/u_ryukyu/ie/cr/tatsuki/oldTree/UpdateXml.java
--- a/src/main/java/jp/ac/u_ryukyu/ie/cr/tatsuki/oldTree/UpdateXml.java Mon Dec 08 19:11:19 2014 +0900
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,28 +0,0 @@
-package jp.ac.u_ryukyu.ie.cr.tatsuki.oldTree;
-
-import java.io.BufferedWriter;
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileWriter;
-import java.io.IOException;
-import java.io.PrintWriter;
-
-import javax.xml.parsers.ParserConfigurationException;
-import javax.xml.parsers.SAXParser;
-import javax.xml.parsers.SAXParserFactory;
-
-import org.xml.sax.SAXException;
-
-import ac.jp.u_ryukyu.cr.ie.tatsuki.xmlReader.UpdateXmlHundler;
-
-public class UpdateXml {
- public static void main(String args[]) throws ParserConfigurationException, SAXException, IOException {
- for (String xml : args) {
- SAXParserFactory saxParserFactory = SAXParserFactory.newInstance();
- SAXParser saxParser = saxParserFactory.newSAXParser();
- UpdateXmlHundler updateXmlHandler = new UpdateXmlHundler(xml);
- saxParser.parse(new FileInputStream("/Users/e115731/workspace/JungleXmlReader/_xml/" + xml + ".xml"),
- updateXmlHandler);
- }
- }
-}
diff -r eed6235830c9 -r 917ecf2c7350 src/main/java/jp/ac/u_ryukyu/ie/cr/tatsuki/xml/FJTreeMapSetTime.java
--- a/src/main/java/jp/ac/u_ryukyu/ie/cr/tatsuki/xml/FJTreeMapSetTime.java Mon Dec 08 19:11:19 2014 +0900
+++ b/src/main/java/jp/ac/u_ryukyu/ie/cr/tatsuki/xml/FJTreeMapSetTime.java Wed Dec 24 15:48:32 2014 +0900
@@ -7,24 +7,37 @@
import java.io.PrintWriter;
import fj.Ord;
+import fj.data.Option;
import fj.data.TreeMap;
public class FJTreeMapSetTime {
+
public static void main(String args[]) throws IOException {
- File file = new File("./time/newfj41");
- PrintWriter pw = new PrintWriter(new BufferedWriter(new FileWriter(file)));
+ System.out.println("putaaa");
+ File putFile = new File("./time/fjPut");
+ PrintWriter putPw = new PrintWriter(new BufferedWriter(new FileWriter(putFile)));
+ File getFile = new File("./time/fjGet");
+ PrintWriter getPw = new PrintWriter(new BufferedWriter(new FileWriter(getFile)));
TreeMap map = TreeMap.empty(Ord.intOrd);
long t1 = 0;
long t2 = 0;
+ long t3 = 0;
+ long t4 = 0;
for (int count = 0; count <= 30000; count++) {
t1 = System.currentTimeMillis();
map = map.set(count, count);
t2 = System.currentTimeMillis();
if (count % 100 == 0) {
System.out.println("put time " + count + " " + (t2 - t1));
- pw.println(count + " " + (t2 - t1));
+ t3 = System.currentTimeMillis();
+ Option op = map.get(count);
+ t4 = System.currentTimeMillis();
+ System.out.println("get time " + count + " " + (t4 - t3));
+ putPw.println(count + " " + (t2 - t1));
+ getPw.println(count + " " + (t4 - t3));
}
}
- pw.close();
+ putPw.close();
+ getPw.close();
}
}
diff -r eed6235830c9 -r 917ecf2c7350 src/main/java/jp/ac/u_ryukyu/ie/cr/tatsuki/xml/FunctionThread.java
--- a/src/main/java/jp/ac/u_ryukyu/ie/cr/tatsuki/xml/FunctionThread.java Mon Dec 08 19:11:19 2014 +0900
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,55 +0,0 @@
-package jp.ac.u_ryukyu.ie.cr.tatsuki.xml;
-
-import java.util.Iterator;
-import java.util.Random;
-
-import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.JungleTree;
-import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.TreeNode;
-import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.traverser.InterfaceTraverser;
-
-public class FunctionThread extends Thread {
-
- JungleTree tree;
- int findCount;
- boolean loop = true;
-
- public FunctionThread(JungleTree tree) {
- this.tree = tree;
- this.findCount = 0;
- }
-
- public int getFindCount() {
- return findCount;
- }
-
- public void set(boolean loop) {
- this.loop = loop;
- }
-
- @Override
- public void run() {
- while (loop) {
-
- findCount++;
- Random rnd = new Random();
-
- String value = String.valueOf(rnd.nextInt(1000));
- InterfaceTraverser traverser = tree.getTraverser(true);
- Iterator resultIterator = traverser.find(
- (TreeNode node) -> {
- String nodeValue = node.getAttributes()
- .getString("KEY");
- if (nodeValue == null)
- return false;
- if (nodeValue.equals(value))
- return true;
- return false;
- }, "KEY", value);
-
- for (; resultIterator.hasNext();) {
- resultIterator.next();
- }
-
- }
- }
-}
diff -r eed6235830c9 -r 917ecf2c7350 src/main/java/jp/ac/u_ryukyu/ie/cr/tatsuki/xml/ReadJungleThread.java
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/src/main/java/jp/ac/u_ryukyu/ie/cr/tatsuki/xml/ReadJungleThread.java Wed Dec 24 15:48:32 2014 +0900
@@ -0,0 +1,54 @@
+package jp.ac.u_ryukyu.ie.cr.tatsuki.xml;
+
+import java.util.Iterator;
+import java.util.Random;
+
+import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.JungleTree;
+import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.TreeNode;
+import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.traverser.InterfaceTraverser;
+
+public class ReadJungleThread extends Thread {
+
+ JungleTree tree;
+ int findCount;
+ boolean loop = true;
+
+ public ReadJungleThread(JungleTree tree) {
+ this.tree = tree;
+ this.findCount = 0;
+ }
+
+ public int getFindCount() {
+ return findCount;
+ }
+
+ public void set(boolean loop) {
+ this.loop = loop;
+ }
+
+ @Override
+ public void run() {
+ while (loop) {
+
+ findCount++;
+ Random rnd = new Random();
+
+ String value = String.valueOf(rnd.nextInt(1000));
+ InterfaceTraverser traverser = tree.getTraverser(true);
+ Iterator resultIterator = traverser.find(
+ (TreeNode node) -> {
+ String nodeValue = node.getAttributes().getString("KEY");
+ if (nodeValue == null)
+ return false;
+ if (nodeValue.equals(value))
+ return true;
+ return false;
+ }, "KEY", value);
+
+ for (; resultIterator.hasNext();) {
+ resultIterator.next();
+ }
+
+ }
+ }
+}
diff -r eed6235830c9 -r 917ecf2c7350 src/main/java/jp/ac/u_ryukyu/ie/cr/tatsuki/xml/TimeMeasurementCreateIndex.java
--- a/src/main/java/jp/ac/u_ryukyu/ie/cr/tatsuki/xml/TimeMeasurementCreateIndex.java Mon Dec 08 19:11:19 2014 +0900
+++ b/src/main/java/jp/ac/u_ryukyu/ie/cr/tatsuki/xml/TimeMeasurementCreateIndex.java Wed Dec 24 15:48:32 2014 +0900
@@ -1,12 +1,9 @@
package jp.ac.u_ryukyu.ie.cr.tatsuki.xml;
-import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
-import java.io.FileWriter;
import java.io.IOException;
-import java.io.PrintWriter;
import java.nio.ByteBuffer;
import java.util.Iterator;
@@ -38,79 +35,73 @@
import jp.ac.u_ryukyu.ie.cr.tatsuki.jungle.store.index.ParentIndex;
public class TimeMeasurementCreateIndex {
- private static int personCount = 10;
-
- public static void main(String args[]) throws FileNotFoundException,
- ParserConfigurationException, SAXException, IOException {
- Jungle jungle = new DefaultJungle(null, "hoge", new DefaultTreeEditor(
- new DefaultTraverser()));
- // JungleTree readXmlTree = readXml("Person", jungle);
- JungleTree orgTree = readXml("Organization", jungle);
- JungleTree roleTree = readXml("Role", jungle);
+ public static void main(String args[]) throws FileNotFoundException, ParserConfigurationException, SAXException,
+ IOException {
+
+ int maxPersonCount = Integer.parseInt(args[0]);
+ Jungle jungle = new DefaultJungle(null, "hoge", new DefaultTreeEditor(new DefaultTraverser()));
+ JungleTree orgTree = readXml("Organization", jungle);
+ JungleTree roleTree = readXml("Role", jungle);
- File file = new File("./time/createParentIndexUntil");
- file.delete();
+ File file = new File("./time/createParentIndexUntil");
+ file.delete();
- for (; personCount <= 300;) {
- JungleTree tree = createJungleTree("Tree");
- JungleTreeEditor editor = tree.getTreeEditor();
- NodePath path = new DefaultNodePath();
- editor = editor.addNewChildAt(path, 0).b();
- editor = editor.putAttribute(path.add(0), "element",
- ByteBuffer.wrap("Persons".getBytes())).b();
+ for (int personCount = 0; personCount <= maxPersonCount;) {
+ JungleTree tree = createJungleTree("Tree");
+ JungleTreeEditor editor = tree.getTreeEditor();
+ NodePath path = new DefaultNodePath();
+ editor = editor.addNewChildAt(path, 0).b();
+ editor = editor.putAttribute(path.add(0), "element", ByteBuffer.wrap("Persons".getBytes())).b();
- for (int count = 0; count < personCount; count++) {
- editor = extendXmlTree.extendsTree(editor, orgTree, roleTree,
- count);
- }
- editor.success();
- personCount = personCount + 10;
- }
+ for (int count = 0; count < personCount; count++) {
+ editor = extendXmlTree.extendsTree(editor, orgTree, roleTree, count);
+ }
+ editor.success();
+ personCount = personCount + 10;
+ System.out.println("personCount" + personCount);
}
+ }
- private static JungleTree createJungleTree(String name) {
- ChangeList list = new ChangeList() {
- @Override
- public Iterator iterator() {
- List nil = List.nil();
- return nil.iterator();
- }
+ private static JungleTree createJungleTree(String name) {
+ ChangeList list = new ChangeList() {
+ @Override
+ public Iterator iterator() {
+ List nil = List.nil();
+ return nil.iterator();
+ }
- @Override
- public String uuid() {
- return "hoge";
- }
+ @Override
+ public String uuid() {
+ return "hoge";
+ }
- @Override
- public String getTreeName() {
- return name;
- }
+ @Override
+ public String getTreeName() {
+ return name;
+ }
- };
+ };
- DefaultTreeNode root = new DefaultTreeNode();
- Index index = new Index();
- ParentIndex parentIndex = new ParentIndex();
- ChangeSet set = new DefaultChangeSet(root, null, list, "hoge", name, 0,
- index.getIndex(), parentIndex.getParentIndex());
- DefaultTreeContext tc = new DefaultTreeContext(root, set);
- JungleTree newTree = new DefaultJungleTree(tc, "hoge",
- new NullJournal().getWriter(), new DefaultTreeEditor(
- new DefaultTraverser()));
- return newTree;
- }
+ DefaultTreeNode root = new DefaultTreeNode();
+ Index index = new Index();
+ ParentIndex parentIndex = new ParentIndex();
+ ChangeSet set = new DefaultChangeSet(root, null, list, "hoge", name, 0, index.getIndex(),
+ parentIndex.getParentIndex());
+ DefaultTreeContext tc = new DefaultTreeContext(root, set);
+ JungleTree newTree = new DefaultJungleTree(tc, "hoge", new NullJournal().getWriter(), new DefaultTreeEditor(
+ new DefaultTraverser()));
+ return newTree;
+ }
- private static JungleTree readXml(String xml, Jungle jungle)
- throws ParserConfigurationException, SAXException, IOException,
- FileNotFoundException {
- SAXParserFactory saxParserFactory = SAXParserFactory.newInstance();
- SAXParser saxParser = saxParserFactory.newSAXParser();
- JungleTree tree = jungle.createNewTree(xml);
- ReadXmlHandler readXmlHandler = new ReadXmlHandler(tree);
- saxParser.parse(new FileInputStream(
- "/Users/one/Documents/workspace/JungleXMLReader/xml/" + xml
- + ".xml"), readXmlHandler);
- return readXmlHandler.getTree();
- }
+ private static JungleTree readXml(String xml, Jungle jungle) throws ParserConfigurationException, SAXException,
+ IOException, FileNotFoundException {
+ SAXParserFactory saxParserFactory = SAXParserFactory.newInstance();
+ SAXParser saxParser = saxParserFactory.newSAXParser();
+ JungleTree tree = jungle.createNewTree(xml);
+ ReadXmlHandler readXmlHandler = new ReadXmlHandler(tree);
+ String currentPath = System.getProperty("user.dir");
+ saxParser.parse(new FileInputStream(currentPath + "/xml/" + xml + ".xml"), readXmlHandler);
+ return readXmlHandler.getTree();
+ }
}
diff -r eed6235830c9 -r 917ecf2c7350 src/main/java/jp/ac/u_ryukyu/ie/cr/tatsuki/xml/TimeMeasurementJuGrixFunction.java
--- a/src/main/java/jp/ac/u_ryukyu/ie/cr/tatsuki/xml/TimeMeasurementJuGrixFunction.java Mon Dec 08 19:11:19 2014 +0900
+++ b/src/main/java/jp/ac/u_ryukyu/ie/cr/tatsuki/xml/TimeMeasurementJuGrixFunction.java Wed Dec 24 15:48:32 2014 +0900
@@ -1,7 +1,12 @@
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;
@@ -13,89 +18,236 @@
public class TimeMeasurementJuGrixFunction {
- static int roopCount = 10;
- static boolean useIndex = true;
- static int personCount = 300;
+ static int roopCount = 10;
+ static boolean useIndex = true;
+ static LinkedList functionTimeLinkedList = new LinkedList();
+ 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 filterIds = new LinkedList();
+ // filterIds.add("r:5");
+ long t2;
+ long t1;
+
+ for (int personCount = 100; maxPersonCount >= personCount;) {
+
+ JuGrix jugrix = extendXmlTree.createJuGrix(useIndex, personCount);
+ Random random = new Random();
- public static void main(String args[]) throws FileNotFoundException,
- ParserConfigurationException, SAXException, IOException {
+ functions(jugrix, orgId, personId, filterIds);
+
+ functionTimeLinkedList = new LinkedList();
+ long sumTime = 0;
+ for (int count = 0; count < roopCount; count++) {
- System.out.println("start : ");
+ 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");
+ }
- String orgId = "o:2";
- String personId = "p:1";
- LinkedList filterIds = new LinkedList();
- filterIds.add("r:5");
- long t2;
- long t1;
- JuGrix jugrix = extendXmlTree.createJuGrix(useIndex, personCount);
- Random random = new Random();
+ 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));
+ }
+ }
- functions(jugrix, orgId, personId, filterIds);
-
- long sumTime = 0;
- for (int count = 0; count < roopCount; count++) {
+ private static void functions(JuGrix jugrix, String orgId, String personId, LinkedList filterIds) {
- int ran = random.nextInt(30);
- orgId = "o:" + String.valueOf(ran);
- personId = "p:" + String.valueOf(ran);
- t1 = System.currentTimeMillis();
- functions(jugrix, orgId, personId, filterIds);
- t2 = System.currentTimeMillis();
- sumTime = (t2 - t1) + sumTime;
- System.out.println(count + "回目=" + sumTime + "s");
- }
- System.out.println("平均 = " + (sumTime / 10) + "s");
- System.out.println("end");
+ long t1 = System.currentTimeMillis();
+ Iterator tmp = jugrix.childOrganizationIds(orgId, filterIds, "v:1");
+ for (; tmp.hasNext();) {
+ tmp.next();
}
- private static void functions(JuGrix jugrix, String orgId, String personId,
- LinkedList filterIds) {
- long t1 = System.currentTimeMillis();
- jugrix.childOrganizationIds(orgId, filterIds);
- long t2 = System.currentTimeMillis();
- // System.out.println("childOrganizationIds = " + (t2-t1));
- jugrix.competentRoleId(personId);
- long t3 = System.currentTimeMillis();
- // System.out.println("competentRoleId = " +(t3-t2));
- jugrix.concurrentRoleIds(personId);
- long t4 = System.currentTimeMillis();
- // System.out.println("concurrentRoleIds = "+(t4-t3));
- jugrix.deepChildOrganizationIds(orgId, filterIds);
- long t5 = System.currentTimeMillis();
- // System.out.println("deepChildOrganizationIds = "+(t5-t4));
- jugrix.deepChildOrganizationIdsPlus(orgId, filterIds);
- long t6 = System.currentTimeMillis();
- // System.out.println("deepChildOrganizationIdsPlus = "+(t6-t5));
- jugrix.deepParentOrganizationIds(orgId, filterIds);
- long t7 = System.currentTimeMillis();
- // System.out.println("deepParentOrganizationIds = "+(t7-t6));
- jugrix.deepParentOrganizationIdsPlus(orgId, filterIds);
- long t8 = System.currentTimeMillis();
- // System.out.println("deepParentOrganizationIdsPlus = "+(t8-t7));
- jugrix.deepPersonIds(orgId, filterIds);
- long t9 = System.currentTimeMillis();
- // System.out.println("deepPersonIds = "+(t9-t8));
- jugrix.isActive(personId);
- long t10 = System.currentTimeMillis();
- // System.out.println("isActive = "+(t10-t9));
- jugrix.parentOrganizationIds(orgId, filterIds);
- long t11 = System.currentTimeMillis();
- // System.out.println("parentOrganizationIds = "+(t11-t10));
- jugrix.personIds(orgId, filterIds);
- long t12 = System.currentTimeMillis();
- // System.out.println("personIds = "+(t12-t11));
- jugrix.roleDescriptionElementIds(orgId, filterIds);
- long t13 = System.currentTimeMillis();
- // System.out.println("roleDescriptionElementIds = "+(t13-t12));
- jugrix.roleIds(orgId, filterIds);
- long t14 = System.currentTimeMillis();
- // System.out.println("roleIds = "+(t14-t13));
- jugrix.rolePriority(personId, "r:34");
- long t15 = System.currentTimeMillis();
- // System.out.println("rolePriority = "+(t15-t14));
- jugrix.stringPathToId("r:path:エスアールエルテクノシステム/臨検システム部/業務システムグループ");
- long t16 = System.currentTimeMillis();
- // System.out.println("stringPathToId = "+(t16-t15));
+ 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 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);
+ }
}
diff -r eed6235830c9 -r 917ecf2c7350 src/main/java/jp/ac/u_ryukyu/ie/cr/tatsuki/xml/TransactionPerSecondMeasurement.java
--- a/src/main/java/jp/ac/u_ryukyu/ie/cr/tatsuki/xml/TransactionPerSecondMeasurement.java Mon Dec 08 19:11:19 2014 +0900
+++ b/src/main/java/jp/ac/u_ryukyu/ie/cr/tatsuki/xml/TransactionPerSecondMeasurement.java Wed Dec 24 15:48:32 2014 +0900
@@ -1,5 +1,10 @@
package jp.ac.u_ryukyu.ie.cr.tatsuki.xml;
+import java.io.BufferedWriter;
+import java.io.File;
+import java.io.FileWriter;
+import java.io.IOException;
+import java.io.PrintWriter;
import java.nio.ByteBuffer;
import java.util.Random;
@@ -14,65 +19,108 @@
public class TransactionPerSecondMeasurement {
- public static void main(String[] args) throws InterruptedException {
+ public static void main(String[] args) throws InterruptedException, IOException {
+ Jungle jungle = new DefaultJungle(null, "hoge", new DefaultTreeEditor(new DefaultTraverser()));
+ JungleTree tree = jungle.createNewTree("testTree");
+ JungleTreeEditor editor = tree.getTreeEditor();
+ editor = createTree(0, new DefaultNodePath(), editor);
+ System.out.println("endCreateTree");
+ editor = editor.success().b();
+ System.out.println(Runtime.getRuntime().availableProcessors());
- Jungle jungle = new DefaultJungle(null, "hoge", new DefaultTreeEditor(
- new DefaultTraverser()));
- JungleTree tree = jungle.createNewTree("testTree");
- JungleTreeEditor editor = tree.getTreeEditor();
- editor = createTree(0, new DefaultNodePath(), editor);
- editor = editor.success().b();
+ if (args.length > 0) {
+ if (args[0].equals("read"))
+ readOnly(tree);
+ if (args[0].equals("write"))
+ readAndWrite(tree);
+ } else
+ System.out.println("Please with the argument");
+ }
- for (int THREAD_COUNT = 1; THREAD_COUNT < 12; THREAD_COUNT++) {
- FunctionThread thread[];
- thread = new FunctionThread[THREAD_COUNT];
- for (int count = 0; THREAD_COUNT > count; count++) {
- thread[count] = new FunctionThread(tree);
- }
+ private static void readAndWrite(JungleTree tree) throws InterruptedException, IOException {
+ System.out.println("read and write");
+ File file = new File("./time/readAndWrite");
+ PrintWriter pw = new PrintWriter(new BufferedWriter(new FileWriter(file)));
+ for (int THREAD_COUNT = 1; THREAD_COUNT <= 12; THREAD_COUNT++) {
+ ReadJungleThread readThread[] = new ReadJungleThread[THREAD_COUNT];
+ for (int count = 0; THREAD_COUNT > count; count++) {
+ readThread[count] = new ReadJungleThread(tree);
+ }
- System.out.println("StartThread");
- for (int count = 0; THREAD_COUNT > count; count++) {
- thread[count].start();
- }
+ WriteJungleThread writeThread = new WriteJungleThread(tree);
+ writeThread.start();
+ for (int count = 0; THREAD_COUNT > count; count++) {
+ readThread[count].start();
+ }
+
+ System.out.println("StartThread");
+
+ Thread.sleep(10000);
+ writeThread.set(false);
+ int readCount = 0;
+
+ for (int count = 0; THREAD_COUNT > count; count++) {
+ readCount = readCount + readThread[count].getFindCount();
+ readThread[count].set(false);
+ System.out.println(readThread[count].getFindCount());
+ }
+
- for (int count = 0; count < 4; count++) {
- Thread.sleep(2500);
- // editor = editor.putAttribute(new DefaultNodePath(), key,
- // ByteBuffer.wrap("2".getBytes())).b();
- // editor = editor.success().b();
- }
- int readCount = 0;
- for (int count = 0; THREAD_COUNT > count; count++) {
- readCount = readCount + thread[count].getFindCount();
- thread[count].set(false);
- System.out.println(thread[count].getFindCount());
- }
+ pw.println(THREAD_COUNT + " " + readCount);
+ System.out.println(THREAD_COUNT + "readCount = " + readCount);
+ Thread.sleep(1000);
+ }
+ pw.close();
+ }
- System.out.println(THREAD_COUNT + "readCount = " + readCount);
- }
- System.out.println("end");
- }
+ private static void readOnly(JungleTree tree) throws InterruptedException, IOException {
+ System.out.println("read only");
+ File file = new File("./time/readOnly");
+ PrintWriter pw = new PrintWriter(new BufferedWriter(new FileWriter(file)));
+ for (int THREAD_COUNT = 1; THREAD_COUNT <= 12; THREAD_COUNT++) {
+ ReadJungleThread readThread[] = new ReadJungleThread[THREAD_COUNT];
+ ;
+ for (int count = 0; THREAD_COUNT > count; count++) {
+ readThread[count] = new ReadJungleThread(tree);
+ }
- static String key = "KEY";
+ for (int count = 0; THREAD_COUNT > count; count++) {
+ readThread[count].start();
+ }
+
+ System.out.println("StartThread");
+
+ Thread.sleep(10000);
+ int readCount = 0;
- public static JungleTreeEditor createTree(int deep, NodePath path,
- JungleTreeEditor editor) {
+ for (int count = 0; THREAD_COUNT > count; count++) {
+ readCount = readCount + readThread[count].getFindCount();
+ readThread[count].set(false);
+ System.out.println(readThread[count].getFindCount());
+ }
+ pw.println(THREAD_COUNT + " " + readCount);
+ System.out.println(THREAD_COUNT + "readCount = " + readCount);
+ }
+ pw.close();
+ }
+
+ static String key = "KEY";
+
+ public static JungleTreeEditor createTree(int deep, NodePath path, JungleTreeEditor editor) {
- Random rnd = new Random();
- String value1 = String.valueOf(rnd.nextInt(1000));
- String value2 = String.valueOf(rnd.nextInt(1000));
- editor = editor.addNewChildAt(path, 0).b();
- editor = editor.putAttribute(path.add(0), key,
- ByteBuffer.wrap(value1.getBytes())).b();
- editor = editor.addNewChildAt(path, 1).b();
- editor = editor.putAttribute(path.add(0), key,
- ByteBuffer.wrap(value2.toString().getBytes())).b();
- deep++;
+ Random rnd = new Random();
+ String value1 = String.valueOf(rnd.nextInt(1000));
+ String value2 = String.valueOf(rnd.nextInt(1000));
+ editor = editor.addNewChildAt(path, 0).b();
+ editor = editor.putAttribute(path.add(0), key, ByteBuffer.wrap(value1.getBytes())).b();
+ editor = editor.addNewChildAt(path, 1).b();
+ editor = editor.putAttribute(path.add(0), key, ByteBuffer.wrap(value2.toString().getBytes())).b();
+ deep++;
- if (deep < 10) {
- editor = createTree(deep, path.add(0), editor);
- editor = createTree(deep, path.add(1), editor);
- }
- return editor;
+ if (deep < 10) {
+ editor = createTree(deep, path.add(0), editor);
+ editor = createTree(deep, path.add(1), editor);
}
+ return editor;
+ }
}
diff -r eed6235830c9 -r 917ecf2c7350 src/main/java/jp/ac/u_ryukyu/ie/cr/tatsuki/xml/UntilTreeMapPutTime.java
--- a/src/main/java/jp/ac/u_ryukyu/ie/cr/tatsuki/xml/UntilTreeMapPutTime.java Mon Dec 08 19:11:19 2014 +0900
+++ b/src/main/java/jp/ac/u_ryukyu/ie/cr/tatsuki/xml/UntilTreeMapPutTime.java Wed Dec 24 15:48:32 2014 +0900
@@ -7,7 +7,6 @@
import java.io.PrintWriter;
import java.util.TreeMap;
-
public class UntilTreeMapPutTime {
public static void main(String args[]) throws IOException {
@@ -18,8 +17,14 @@
long t1 = System.currentTimeMillis();
map.put(count, count);
long t2 = System.currentTimeMillis();
+ int aaa = map.get(count);
+ long t3 = System.currentTimeMillis();
+ if ((count % 100) == 0) {
System.out.println("put time " + count + " " + (t2 - t1));
+ System.out.println("get time " + count + " " + (t3 - t2));
+
pw.println(count + " " + (t2 - t1));
+ }
}
pw.close();
}
diff -r eed6235830c9 -r 917ecf2c7350 src/main/java/jp/ac/u_ryukyu/ie/cr/tatsuki/xml/WriteJungleThread.java
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/src/main/java/jp/ac/u_ryukyu/ie/cr/tatsuki/xml/WriteJungleThread.java Wed Dec 24 15:48:32 2014 +0900
@@ -0,0 +1,39 @@
+package jp.ac.u_ryukyu.ie.cr.tatsuki.xml;
+
+import java.nio.ByteBuffer;
+
+import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.JungleTree;
+import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.JungleTreeEditor;
+import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.DefaultNodePath;
+
+public class WriteJungleThread extends Thread {
+
+ JungleTree tree;
+ JungleTreeEditor editor;
+ int writeCount;
+ boolean loop = true;
+
+ public WriteJungleThread(JungleTree tree) {
+ this.tree = tree;
+ this.editor = tree.getTreeEditor();
+ this.writeCount = 0;
+ }
+
+ public void set(boolean loop) {
+ this.loop = loop;
+ }
+
+ public int get() {
+ return writeCount;
+ }
+
+ @Override
+ public void run() {
+ while (loop) {
+ editor = editor.putAttribute(new DefaultNodePath(), "KEY", ByteBuffer.wrap("2".getBytes())).b();
+ editor = editor.success().b();
+ writeCount++;
+
+ }
+ }
+}
\ No newline at end of file
diff -r eed6235830c9 -r 917ecf2c7350 src/main/java/jp/ac/u_ryukyu/ie/cr/tatsuki/xml/extendXmlTree.java
--- a/src/main/java/jp/ac/u_ryukyu/ie/cr/tatsuki/xml/extendXmlTree.java Mon Dec 08 19:11:19 2014 +0900
+++ b/src/main/java/jp/ac/u_ryukyu/ie/cr/tatsuki/xml/extendXmlTree.java Wed Dec 24 15:48:32 2014 +0900
@@ -1,8 +1,12 @@
package jp.ac.u_ryukyu.ie.cr.tatsuki.xml;
+import java.io.BufferedWriter;
+import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
+import java.io.FileWriter;
import java.io.IOException;
+import java.io.PrintWriter;
import java.nio.ByteBuffer;
import java.util.Iterator;
import java.util.Random;
@@ -28,37 +32,57 @@
public class extendXmlTree {
- private extendXmlTree() {
+ public static void main(String args[]) throws FileNotFoundException, ParserConfigurationException, SAXException,
+ IOException {
+
+ if (args.length != 2) {
+ System.out.println("Arguments are two necessary , first person count, second use Index");
+ return;
+ }
+
+ int maxPersonCount = Integer.parseInt(args[0]);
+
+ boolean useIndex = false;
+ if (args[1].equals("true"))
+ useIndex = true;
+
+ for (int personCount = 10; personCount <= maxPersonCount; personCount = personCount + 10) {
+ createJuGrix(useIndex, personCount);
+ }
}
-
- public static JuGrix createJuGrix(boolean useIndex,int personCount ) throws ParserConfigurationException, SAXException,
- FileNotFoundException, IOException {
+ public static JuGrix createJuGrix(boolean useIndex, int personCount) throws ParserConfigurationException,
+ SAXException, FileNotFoundException, IOException {
Jungle jungle = new DefaultJungle(null, "hoge", new DefaultTreeEditor(new DefaultTraverser()));
JungleTree readXmlTree = jungle.createNewTree("Person");
- //JungleTree readXmlTree = readXml("Person", jungle);
+ // JungleTree readXmlTree = readXml("Person", jungle);
JungleTree orgTree = readXml("Organization", jungle);
JungleTree roleTree = readXml("Role", jungle);
JungleTreeEditor editor = readXmlTree.getTreeEditor();
NodePath path = new DefaultNodePath();
editor = editor.addNewChildAt(path, 0).b();
editor = editor.putAttribute(path.add(0), "element", ByteBuffer.wrap("Persons".getBytes())).b();
- System.out.println("Create Tree-------------------------------");
+
+ long start = System.currentTimeMillis();
+
for (int count = 0; count < personCount; ++count) {
editor = extendsTree(editor, orgTree, roleTree, count);
}
+
+ long stop = System.currentTimeMillis();
+ File file = new File("./time/createPersonTime");
+ PrintWriter pw = new PrintWriter(new BufferedWriter(new FileWriter(file,true)));
+ pw.println(personCount + " " + (stop - start));
+ pw.close();
+ System.out.println("create person time = " + (stop - start));
+ System.out.println("person count = " + personCount);
editor.success();
-
- int PersonCount = readXmlTree.getRootNode().getChildren().at(0).b().getChildren().size();
- System.out.println("PersonCount = " + PersonCount);
- System.out.println("end-------------------------------");
JuGrix jugrix = new JuGrix(useIndex, readXmlTree, orgTree, roleTree);
return jugrix;
}
- public static JungleTreeEditor extendsTree(JungleTreeEditor editor, JungleTree orgTree, JungleTree roleTree,
- int count) {
+ public static JungleTreeEditor extendsTree(JungleTreeEditor editor, JungleTree orgTree, JungleTree roleTree, int count) {
Random rdm = new Random();
int orgNum = rdm.nextInt(30);
String orgId = "o:" + String.valueOf(orgNum);
@@ -239,8 +263,8 @@
SAXParser saxParser = saxParserFactory.newSAXParser();
JungleTree tree = jungle.createNewTree(xml);
ReadXmlHandler readXmlHandler = new ReadXmlHandler(tree);
- saxParser
- .parse(new FileInputStream("/Users/one/Documents/workspace/JungleXMLReader/xml/" + xml + ".xml"), readXmlHandler);
+ String currentPath = System.getProperty("user.dir");
+ saxParser.parse(new FileInputStream(currentPath + "/xml/" + xml + ".xml"), readXmlHandler);
return readXmlHandler.getTree();
}