Mercurial > hg > Members > shoshi > jungle > jungle-core
view src/main/java/jp/ac/u_ryukyu/ie/cr/benchMark/tree/CreateListTreeBenchMark.java @ 308:201cc75a9984
change Red Black Tree Edit Path Extends
author | tatsuki |
---|---|
date | Thu, 26 Jan 2017 15:23:25 +0900 |
parents | a23069461460 |
children | d6b81870216b |
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.Error.Error; import java.nio.ByteBuffer; public class CreateListTreeBenchMark { public static void main(String args[]) { Jungle jungle = new DefaultJungle(null, "hogehoge"); if (args.length == 0) { System.out.println("args default or difference"); System.exit(0); } if (args[0].equals("default")) defaultJungleTreeBenchMark(jungle); else if (args[0].equals("difference")) DifferenceJungleTreeBenchMark(jungle); else { System.out.println("args default or difference"); System.exit(0); } } private static void DifferenceJungleTreeBenchMark(Jungle jungle) { System.out.println("differencialTree"); for (int i = 1; i <= 100; i++) { JungleTree tree = jungle.createNewDifferenceTree("Tree" + i); Long t1 = System.currentTimeMillis(); NodePath path = new DefaultNodePath(); for (int j = 0; j < (20 * 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; } System.gc(); Long t2 = System.currentTimeMillis(); System.out.println((i * 20) + " " + (t2 - t1)); } } private static void defaultJungleTreeBenchMark(Jungle jungle) { System.out.println("defaultTree"); for (int i = 1; i <= 10; i++) { JungleTree tree = jungle.createNewTree("Tree" + i); Long t1 = System.currentTimeMillis(); NodePath path = new DefaultNodePath(); for (int j = 0; j < (200 * 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 * 200) + " " + (t2 - t1)); } } }