package benchmarks; import esl.cuenet.mapper.parser.ParseException; import esl.datastructures.graph.relationgraph.RelationGraph; import esl.datastructures.graph.relationgraph.RelationGraphNode; import esl.system.SysLoggerUtils; import org.apache.log4j.Logger; import java.io.IOException; import java.util.List; import java.util.Random; public class GraphBenchmarks { private Logger logger = Logger.getLogger(GraphBenchmarks.class); private long start = 0; public void benchmarkSimpleGraph() throws IOException, ParseException { RelationGraph graph = new RelationGraph(); RelationGraphNode[] typeNodes = new RelationGraphNode[5]; Random generator = new Random(System.currentTimeMillis()); recordTick(); //create 100 type nodes for (int i=0; i<typeNodes.length; i++) { typeNodes[i] = graph.createNode("t" + i); } recordTick("Created Type Nodes"); //create 100 nodes for (int i=0; i<100; i++) { RelationGraphNode n = graph.createNode("n" + i); graph.createEdge("type-of", n, typeNodes[generator.nextInt(typeNodes.length)]); } recordTick("Created Instance Nodes"); for (int i=0; i<typeNodes.length; i++) { List<RelationGraphNode> l = graph.getNodesOfType(typeNodes[i].name()); logger.info(l.size()); } } private void recordTick() { logger.info("Time Elapsed: " + (System.currentTimeMillis() - start)); } private void recordTick(String msg) { logger.info("Time Elapsed (" + msg + "): " + (System.currentTimeMillis() - start)); } private void time() throws Exception { start = System.currentTimeMillis(); benchmarkSimpleGraph(); long end = System.currentTimeMillis(); logger.info("Total Execution Time: " + (end - start)); } public static void main(String[] args) throws Exception { SysLoggerUtils.initLogger(); (new GraphBenchmarks()).time(); } }