# HG changeset patch # User tatsuki # Date 1426568920 -32400 # Node ID 2e6ca84686da6bcad0f05037225c7b1d46cbade8 # Parent 817febd9c69b15f512f2184c40ce249a6d8156e7 refactor TreeMap BenchMark diff -r 817febd9c69b -r 2e6ca84686da src/main/java/jp/ac/u_ryukyu/ie/cr/tatsuki/jungle/test/AbstractTreeMapThread.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/main/java/jp/ac/u_ryukyu/ie/cr/tatsuki/jungle/test/AbstractTreeMapThread.java Tue Mar 17 14:08:40 2015 +0900 @@ -0,0 +1,9 @@ +package jp.ac.u_ryukyu.ie.cr.tatsuki.jungle.test; + +/** + * Created by e115731 on 15/03/17. + */ +public abstract class AbstractTreeMapThread extends Thread{ + public abstract void set(boolean flag); + public abstract long getFindCount(); +} diff -r 817febd9c69b -r 2e6ca84686da src/main/java/jp/ac/u_ryukyu/ie/cr/tatsuki/jungle/test/FunctionalTreeMapReadThread.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/main/java/jp/ac/u_ryukyu/ie/cr/tatsuki/jungle/test/FunctionalTreeMapReadThread.java Tue Mar 17 14:08:40 2015 +0900 @@ -0,0 +1,40 @@ +package jp.ac.u_ryukyu.ie.cr.tatsuki.jungle.test; + +import fj.data.Option; +import fj.data.TreeMap; + +/** + * Created by e115731 on 15/03/17. + */ +public class FunctionalTreeMapReadThread extends AbstractTreeMapThread{ + + TreeMap map; + private long findCount; + boolean loop = true; + + public FunctionalTreeMapReadThread(TreeMap map) { + this.map = map; + } + + @Override + public long getFindCount() { + System.out.println("thread count = " + findCount); + return findCount; + } + + @Override + public void set(boolean loop) { + this.loop = loop; + } + + @Override + public void run() { + while (loop) { + Option op = map.get("test"); + if (op.isSome()) + findCount++; + else + System.out.println("faild"); + } + } +} diff -r 817febd9c69b -r 2e6ca84686da src/main/java/jp/ac/u_ryukyu/ie/cr/tatsuki/jungle/test/JungleBenchMarkThread.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/main/java/jp/ac/u_ryukyu/ie/cr/tatsuki/jungle/test/JungleBenchMarkThread.java Tue Mar 17 14:08:40 2015 +0900 @@ -0,0 +1,9 @@ +package jp.ac.u_ryukyu.ie.cr.tatsuki.jungle.test; + +/** + * Created by e115731 on 15/03/17. + */ +public abstract class JungleBenchMarkThread extends Thread{ + public abstract long getFindCount(); + public abstract void set(boolean flag); +} diff -r 817febd9c69b -r 2e6ca84686da src/main/java/jp/ac/u_ryukyu/ie/cr/tatsuki/jungle/test/TreeMapBenchMark.java --- a/src/main/java/jp/ac/u_ryukyu/ie/cr/tatsuki/jungle/test/TreeMapBenchMark.java Tue Mar 17 11:19:04 2015 +0900 +++ b/src/main/java/jp/ac/u_ryukyu/ie/cr/tatsuki/jungle/test/TreeMapBenchMark.java Tue Mar 17 14:08:40 2015 +0900 @@ -1,36 +1,52 @@ package jp.ac.u_ryukyu.ie.cr.tatsuki.jungle.test; -import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.DefaultJungle; -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; -import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.DefaultTreeEditor; -import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.traverser.DefaultTraverser; +import fj.Ord; +import fj.data.TreeMap; import org.xml.sax.SAXException; import javax.xml.parsers.ParserConfigurationException; import java.io.*; -import java.nio.ByteBuffer; /** * Created by e115731 on 15/03/17. */ public class TreeMapBenchMark { public static void main(String[] args) throws InterruptedException, IOException, ParserConfigurationException, SAXException { - System.out.println("startReadTree"); + - System.out.println("util"); + if (args.length == 0) { + System.out.println("args fj or util"); + System.exit(0); + } + Runtime rt = Runtime.getRuntime(); int cpuNum = rt.availableProcessors(); - File file = new File("./readTreeMapTime"); + File file = new File("./time//get" + args[0] + "TreeMapTime"); + PrintWriter pw = new PrintWriter(new BufferedWriter(new FileWriter(file))); - for (int THREAD_COUNT = 1; THREAD_COUNT <= cpuNum; THREAD_COUNT++) { - TreeMapReadThread readThread[] = new TreeMapReadThread[THREAD_COUNT]; - ; - for (int count = 0; THREAD_COUNT > count; count++) { - readThread[count] = new TreeMapReadThread(); - } + + AbstractTreeMapThread readThread[] = null; + + for (int THREAD_COUNT = 1; THREAD_COUNT <= cpuNum; THREAD_COUNT++) { + readThread = new AbstractTreeMapThread[THREAD_COUNT]; + + if (args[0].equals("fj")) { + TreeMap map = TreeMap.empty(Ord.stringOrd); + map = map.set("test","'test"); + for (int count = 0; THREAD_COUNT > count; count++) { + readThread[count] = new FunctionalTreeMapReadThread(map); + } + } else if (args[0].equals("util")) { + java.util.TreeMap map = new java.util.TreeMap(); + map.put("test","test"); + for (int count = 0; THREAD_COUNT > count; count++) { + readThread[count] = new UtilTreeMapReadThread(map); + } + } else { + System.out.println("not allow args"); + System.exit(0); + } for (int count = 0; THREAD_COUNT > count; count++) { readThread[count].start(); diff -r 817febd9c69b -r 2e6ca84686da src/main/java/jp/ac/u_ryukyu/ie/cr/tatsuki/jungle/test/TreeMapReadThread.java --- a/src/main/java/jp/ac/u_ryukyu/ie/cr/tatsuki/jungle/test/TreeMapReadThread.java Tue Mar 17 11:19:04 2015 +0900 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,45 +0,0 @@ -package jp.ac.u_ryukyu.ie.cr.tatsuki.jungle.test; - -import fj.Ord; -import fj.data.Option; -import fj.data.TreeMap; - -/** - * Created by e115731 on 15/03/17. - */ -public class TreeMapReadThread extends Thread { - - //TreeMap map = TreeMap.empty(Ord.stringOrd); - java.util.TreeMap map = new java.util.TreeMap(); - private long findCount; - - boolean loop = true; - - public TreeMapReadThread() { - - //map = map.set("test","test"); - map.put("test","test"); - } - - public long getFindCount() { - System.out.println("thread count = " + findCount); - return findCount; - } - - public void set(boolean loop) { - this.loop = loop; - } - - @Override - public void run() { - while (loop) { - // Option op = map.get("test"); - // if (op.isSome()) - // findCount++; - if (map.get("test").equals("test")) - findCount++; - else - System.out.println("faild"); - } - } -} diff -r 817febd9c69b -r 2e6ca84686da src/main/java/jp/ac/u_ryukyu/ie/cr/tatsuki/jungle/test/UtilTreeMapReadThread.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/main/java/jp/ac/u_ryukyu/ie/cr/tatsuki/jungle/test/UtilTreeMapReadThread.java Tue Mar 17 14:08:40 2015 +0900 @@ -0,0 +1,40 @@ +package jp.ac.u_ryukyu.ie.cr.tatsuki.jungle.test; + + +import java.util.TreeMap; + +/** + * Created by e115731 on 15/03/17. + */ +public class UtilTreeMapReadThread extends AbstractTreeMapThread { + + TreeMap map; + private long findCount; + + boolean loop = true; + + public UtilTreeMapReadThread(TreeMap map) { + this.map = map; + } + + @Override + public long getFindCount() { + System.out.println("thread count = " + findCount); + return findCount; + } + + @Override + public void set(boolean loop) { + this.loop = loop; + } + + @Override + public void run() { + while (loop) { + if (map.get("test").equals("test")) + findCount++; + else + System.out.println("faild"); + } + } +} diff -r 817febd9c69b -r 2e6ca84686da src/main/java/jp/ac/u_ryukyu/ie/cr/tatsuki/jungle/test/readTreeAttributeThread.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/main/java/jp/ac/u_ryukyu/ie/cr/tatsuki/jungle/test/readTreeAttributeThread.java Tue Mar 17 14:08:40 2015 +0900 @@ -0,0 +1,44 @@ +package jp.ac.u_ryukyu.ie.cr.tatsuki.jungle.test; + +import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.JungleTree; +import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.TreeNode; + +/** + * Created by e115731 on 15/03/17. + */ +public class readTreeAttributeThread extends JungleBenchMarkThread { + + JungleTree tree; + private long findCount; + + boolean loop = true; + + public readTreeAttributeThread(JungleTree tree) { + this.tree = tree; + this.findCount = 0; + } + + @Override + public long getFindCount() { + System.out.println("thread count = " + findCount); + return findCount; + } + + public void set(boolean loop) { + this.loop = loop; + } + + @Override + public void run() { + while (loop) { + TreeNode root = tree.getRootNode(); + if (root != null) + findCount++; + String attribute = root.getAttributes().getString("test"); + if (attribute.equals("test")) + findCount++; + else + System.out.println("faild"); + } + } +}