Mercurial > hg > Members > shoshi > jungle > jungle-core
view src/main/java/jp/ac/u_ryukyu/ie/cr/benchMark/persistent/DataReadBenchMark.java @ 331:74401cc27a96
fix log again
author | suruga |
---|---|
date | Sat, 08 Jul 2017 21:46:53 +0900 |
parents | 2a0cb1f0ba4e |
children |
line wrap: on
line source
package jp.ac.u_ryukyu.ie.cr.benchMark.persistent; import jp.ac.u_ryukyu.ie.cr.jungle.Jungle; import jp.ac.u_ryukyu.ie.cr.jungle.tree.JungleTree; import jp.ac.u_ryukyu.ie.cr.jungle.transaction.editor.jungleTreeEditor.JungleTreeEditor; import jp.ac.u_ryukyu.ie.cr.jungle.persistent.ChangeList; import jp.ac.u_ryukyu.ie.cr.jungle.persistent.ChangeListReader; import jp.ac.u_ryukyu.ie.cr.jungle.store.nodepath.NodePath; import jp.ac.u_ryukyu.ie.cr.jungle.transaction.editor.treeEditor.DefaultTreeEditor; import jp.ac.u_ryukyu.ie.cr.jungle.traverser.DefaultTraverser; import jp.ac.u_ryukyu.ie.cr.jungle.util.Either; import jp.ac.u_ryukyu.ie.cr.jungle.util.jungleError.Error; import jp.ac.u_ryukyu.ie.cr.jungleNetwork.operations.NetworkNodePath; import jp.ac.u_ryukyu.ie.cr.jungleNetwork.persistent.PersistentJournal; import jp.ac.u_ryukyu.ie.cr.jungleNetwork.persistent.PersistentJungle; import jp.ac.u_ryukyu.ie.cr.jungleNetwork.transaction.JungleUpdater; import org.junit.Assert; import java.io.*; import java.nio.ByteBuffer; public class DataReadBenchMark { static ByteBuffer value = ByteBuffer.wrap("value".getBytes()); static String key = "key"; static int pos = 0; public static void main(String[] args) throws IOException { PersistentJournal journal1 = new PersistentJournal("commit.log"); Jungle jungle = new PersistentJungle(journal1, "uuid", new DefaultTraverser()); Jungle jungle2 = new PersistentJungle(journal1, "uuid3",new DefaultTraverser()); Long t1; Long t2; PrintWriter readTimeWriter = new PrintWriter(new BufferedWriter(new FileWriter(new File("./time/readTime")))); PrintWriter writeTimeWriter = new PrintWriter(new BufferedWriter(new FileWriter(new File("./time/writeTime")))); for (int i = 1 ; i <= 20 ; i++) { jungle.createNewTree("hoge" + i); JungleTree tree1 = jungle.getTreeByName("hoge" + i); JungleTreeEditor editor; NetworkNodePath path = new NetworkNodePath(); t1 = System.currentTimeMillis(); for (int j = 0; j < 100 * i; j++) { editor = tree1.getJungleTreeEditor(); Either<Error, JungleTreeEditor> either = editor.addNewChildAt(path, pos); NodePath childPath = path.add(pos); Assert.assertFalse(either.isA()); editor = either.b(); either = editor.putAttribute(childPath, key, value); JungleTreeEditor editor2 = either.b(); either = editor2.success(); Assert.assertFalse(either.isA()); } t2 = System.currentTimeMillis(); writeTimeWriter.println((100 * i) + " " + (t2 - t1)); System.out.println("write time = " + (t2 - t1)); PersistentJournal journal2 = new PersistentJournal(); journal2.setInputFile(new File( journal1.getLogName())); journal2.setOutputFile(new File( journal1.getLogName())); ChangeListReader reader = journal2.getReader(); t1 = System.currentTimeMillis(); for (ChangeList chList : reader) { String treeName = chList.getTreeName(); JungleTree tree2 = jungle2.getTreeByName(treeName); if (tree2 == null) { tree2 = jungle2.createNewTree(treeName); } JungleTreeEditor editor2 = tree2.getJungleTreeEditor(); Either<Error, JungleTreeEditor> either2 = JungleUpdater.edit(editor2, chList); Assert.assertFalse(either2.isA()); editor2 = either2.b(); editor2.success(); } t2 = System.currentTimeMillis(); readTimeWriter.println((100 * i) + " " + (t2 - t1)); System.out.println("read time = " + (t2 - t1)); } writeTimeWriter.close(); readTimeWriter.close(); journal1.close(); } }