Mercurial > hg > Members > tatsuki > bench > jungle-core
diff src/main/java/jp/ac/u_ryukyu/ie/cr/tatsuki/jungle/test/JungleBenchMark.java @ 183:066d9c5758dc
change TreeContext
author | tatsuki |
---|---|
date | Mon, 23 Mar 2015 15:44:28 +0900 |
parents | 67d4c68578cf |
children | 868a746996ad |
line wrap: on
line diff
--- a/src/main/java/jp/ac/u_ryukyu/ie/cr/tatsuki/jungle/test/JungleBenchMark.java Fri Mar 20 15:35:53 2015 +0900 +++ b/src/main/java/jp/ac/u_ryukyu/ie/cr/tatsuki/jungle/test/JungleBenchMark.java Mon Mar 23 15:44:28 2015 +0900 @@ -24,25 +24,42 @@ public static void main(String[] args) throws InterruptedException, IOException, ParserConfigurationException, SAXException { - if (args.length == 0) { - System.out.println("args read or find"); + if (args.length < 1) { + System.out.println("args[0] = read or find, args[1] = separate or nonSeparate"); System.exit(0); } - Jungle jungle = new DefaultJungle(null, "hoge", new DefaultTreeEditor(new DefaultTraverser())); - JungleTree tree = jungle.createNewTree("Person"); - JungleTreeEditor editor = tree.getTreeEditor(); - JungleTreeEditor newEditor = createTree(0,new DefaultNodePath(),editor); - if (newEditor.success().isA()) { - System.out.println("success faild"); - System.exit(1); - } - Runtime rt = Runtime.getRuntime(); int cpuNum = rt.availableProcessors(); + Jungle jungle = new DefaultJungle(null, "hoge", new DefaultTreeEditor(new DefaultTraverser())); + JungleTree trees[] = new JungleTree[cpuNum]; - File file = new File("./time/JungleTree" + args[0] + "Time"); + if (args[1].equals("separate")){ + for (int count = 0; count < cpuNum; count++) { + JungleTree tree = jungle.createNewTree("tree" + count); + JungleTreeEditor editor = tree.getTreeEditor(); + editor = editor.putAttribute(new DefaultNodePath(), "key", ByteBuffer.wrap(String.valueOf(0).getBytes())).b(); + JungleTreeEditor newEditor = createTree(0, new DefaultNodePath(), editor); + if (newEditor.success().isA()) { + System.out.println("success faild"); + System.exit(1); + } + trees[count] = tree; + } + } else { + JungleTree tree = jungle.createNewTree("tree" ); + JungleTreeEditor editor = tree.getTreeEditor(); + editor = editor.putAttribute(new DefaultNodePath(), "key", ByteBuffer.wrap(String.valueOf(0).getBytes())).b(); + JungleTreeEditor newEditor = createTree(0, new DefaultNodePath(), editor); + if (newEditor.success().isA()) { + System.out.println("success faild"); + System.exit(1); + } + trees[0] = tree; + } + + File file = new File("./time/" + args[1] + "JungleTree" + args[0] + "Time"); PrintWriter pw = new PrintWriter(new BufferedWriter(new FileWriter(file))); @@ -50,13 +67,21 @@ for (int THREAD_COUNT = 1; THREAD_COUNT <= cpuNum; THREAD_COUNT++) { readThread = new JungleBenchMarkThread[THREAD_COUNT]; - + JungleTree tree = null; if (args[0].equals("read")) { for (int count = 0; THREAD_COUNT > count; count++) { + if (args[1].equals("separate")) + tree = trees[count]; + else + tree = trees[0]; readThread[count] = new readTreeAttributeThread(tree); } } else if (args[0].equals("find")) { for (int count = 0; THREAD_COUNT > count; count++) { + if (args[1].equals("separate")) + tree = trees[count]; + else + tree = trees[0]; readThread[count] = new findTreeAttributeThread(tree); } } else { @@ -76,26 +101,29 @@ for (int count = 0; THREAD_COUNT > count; count++) { readCount = readCount + readThread[count].getFindCount(); readThread[count].set(false); + readThread[count] = null; } pw.println(THREAD_COUNT + " " + readCount); System.out.println(THREAD_COUNT + "readCount = " + readCount); + System.gc(); + System.out.println("-------------GC--------------"); + Thread.sleep(1000); } pw.close(); } - static Integer nodeNum = 0; + static Integer nodeNum = 1; + public static JungleTreeEditor createTree(int deep, NodePath path, JungleTreeEditor editor) { Random rnd = new Random(); String value1 = String.valueOf(nodeNum); - nodeNum ++; + nodeNum++; String value2 = String.valueOf(nodeNum); - nodeNum ++; + nodeNum++; - if (value1.equals("500")) - System.out.println("aaa"); editor = editor.addNewChildAt(path, 0).b(); editor = editor.putAttribute(path.add(0), "key", ByteBuffer.wrap(value1.getBytes())).b(); editor = editor.addNewChildAt(path, 1).b();