Mercurial > hg > Members > shoshi > jungle > jungle-core
view src/main/java/jp/ac/u_ryukyu/ie/cr/benchMark/JungleBenchMark.java @ 308:201cc75a9984
change Red Black Tree Edit Path Extends
author | tatsuki |
---|---|
date | Thu, 26 Jan 2017 15:23:25 +0900 |
parents | 0767620e6f5f |
children | e3e4ffd746cb |
line wrap: on
line source
package jp.ac.u_ryukyu.ie.cr.benchMark; import jp.ac.u_ryukyu.ie.cr.jungle.DefaultJungle; import jp.ac.u_ryukyu.ie.cr.jungle.query.traverser.InterfaceTraverser; 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.transaction.node.TreeNode; import jp.ac.u_ryukyu.ie.cr.jungle.transaction.node.TreeNodeAttributes; import jp.ac.u_ryukyu.ie.cr.jungle.tree.JungleTree; import java.nio.ByteBuffer; import java.util.Iterator; /** * Created by e115731 on 15/05/07. */ public class JungleBenchMark { public static void main(String args[]) { DefaultJungle jungle = new DefaultJungle(null, "sample"); jungle.createNewTree("tree"); JungleTree tree = jungle.getTreeByName("tree"); JungleTreeEditor editor = tree.getJungleTreeEditor(); NodePath path = new DefaultNodePath(); path = path.add(0); for (int count = 1; count <= 10; count++) { for (int personCount = 0; personCount < 1000 * count; personCount++) { editor = editor.replaceNewRootNode().b(); ByteBuffer value = ByteBuffer.wrap(("p:" + personCount).getBytes()); editor = editor.putAttribute(path, "personId", value).b(); ByteBuffer value2 = ByteBuffer.wrap(("r:" + personCount).getBytes()); editor = editor.putAttribute(path, "roleId", value2).b(); } editor.success(); long t1 = System.currentTimeMillis(); for (int findCount = 0; findCount < 50000; ) { InterfaceTraverser traverser = tree.getTraverser(true); Iterator<TreeNode> it = traverser.find(null, "personId", "p:100"); if (it.hasNext()) { TreeNode targetNode = it.next(); TreeNodeAttributes attribute = targetNode.getAttributes(); String targetRoleId = attribute.getString("roleId"); if (targetRoleId.equals("r:100")) findCount++; } else { System.out.println("find miss"); System.exit(1); } } long t2 = System.currentTimeMillis(); System.out.println("time = " + (t2 - t1)); } } }