Mercurial > hg > Members > shoshi > jungle > jungle-core
view src/main/java/jp/ac/u_ryukyu/ie/cr/benchMark/JungleBenchMark.java @ 320:e3e4ffd746cb
commit
author | tatsuki |
---|---|
date | Tue, 07 Feb 2017 21:34:21 +0900 |
parents | 201cc75a9984 |
children |
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)); } } }