Mercurial > hg > Members > shoshi > jungle > jungle-core
view src/main/java/jp/ac/u_ryukyu/ie/cr/benchMark/tree/CreateListTreeBenchMark.java @ 329:2a0cb1f0ba4e
rename Error package
author | kono |
---|---|
date | Sat, 08 Jul 2017 21:05:55 +0900 |
parents | 5c4f8a7b4468 |
children |
line wrap: on
line source
package jp.ac.u_ryukyu.ie.cr.benchMark.tree; import jp.ac.u_ryukyu.ie.cr.jungle.DefaultJungle; import jp.ac.u_ryukyu.ie.cr.jungle.Jungle; import jp.ac.u_ryukyu.ie.cr.jungle.store.nodepath.DefaultNodePath; import jp.ac.u_ryukyu.ie.cr.jungle.store.nodepath.NodePath; import jp.ac.u_ryukyu.ie.cr.jungle.transaction.editor.jungleTreeEditor.JungleTreeEditor; import jp.ac.u_ryukyu.ie.cr.jungle.tree.JungleTree; import jp.ac.u_ryukyu.ie.cr.jungle.util.Either; import jp.ac.u_ryukyu.ie.cr.jungle.util.jungleError.Error; import java.nio.ByteBuffer; import static java.lang.Thread.sleep; public class CreateListTreeBenchMark { public static void main(String args[]) throws InterruptedException { if (args.length == 0) { System.out.println("args default or difference"); System.exit(0); } WarmUp(); //初めの一回がやたら遅いのでWarmUpさせる。 if (args[0].equals("default")) defaultJungleTreeBenchMark(); else if (args[0].equals("difference")) DifferenceJungleTreeBenchMark(); else { System.out.println("args default or difference"); System.exit(0); } } private static void WarmUp(){ Jungle jungle = new DefaultJungle(null, "hogehoge"); JungleTree tree = jungle.createNewDifferenceTree("Tree"); NodePath path = new DefaultNodePath(); JungleTreeEditor editor = tree.getJungleTreeEditor(); Either<Error, JungleTreeEditor> either = editor.putAttribute(path, "key", ByteBuffer.wrap("value".getBytes())); if (either.isA()) return; editor = either.b(); either = editor.success(); } private static void DifferenceJungleTreeBenchMark() throws InterruptedException { System.out.println("differencialTree"); for (int i = 30; i <= 300; ) { Jungle jungle = new DefaultJungle(null, "hogehoge"); JungleTree tree = jungle.createNewDifferenceTree("Tree"); Long t1 = System.currentTimeMillis(); NodePath path = new DefaultNodePath(); for (int j = 0; j < i; j++) { JungleTreeEditor editor = tree.getJungleTreeEditor(); Either<Error, JungleTreeEditor> either = editor.putAttribute(path, "key", ByteBuffer.wrap("value".getBytes())); if (either.isA()) return; editor = either.b(); either = editor.success(); if (either.isA()) return; } Long t2 = System.currentTimeMillis(); System.out.println(i + " " + (t2 - t1)); System.gc(); sleep(1000); i += 30; } } private static void defaultJungleTreeBenchMark() throws InterruptedException { System.out.println("defaultTree"); for (int i = 30; i <= 300; ) { Jungle jungle = new DefaultJungle(null, "hogehoge"); JungleTree tree = jungle.createNewTree("Tree" + i); Long t1 = System.currentTimeMillis(); NodePath path = new DefaultNodePath(); for (int j = 0; j < i; j++) { JungleTreeEditor editor = tree.getJungleTreeEditor(); Either<Error, JungleTreeEditor> either = editor.addNewChildAndPutAttribute(path, 0, "key", ByteBuffer.wrap("value".getBytes())); if (either.isA()) return; editor = either.b(); path = path.add(0); either = editor.success(); if (either.isA()) return; } Long t2 = System.currentTimeMillis(); System.out.println(i + " " + (t2 - t1)); System.gc(); sleep(1000); i += 30; } } }