public void Execute(IGraphDS myGraphDS, long myIterations, Converter.WriteLineToConsole MyWriteLine) { var transactionID = myGraphDS.BeginTransaction(null); var vertexType = myGraphDS.GetVertexType<IVertexType>(null, transactionID, new RequestGetVertexType(_interestingVertexType), (stats, vType) => vType); var vertexList = myGraphDS.GetVertices<List<IVertex>>(null, transactionID, new RequestGetVertices(_interestingVertexType), (stats, vertices) => vertices.ToList()); List<double> tps = new List<double>(); long edgeCount= 0; for (int i = 0; i < myIterations; i++) { Stopwatch sw = Stopwatch.StartNew(); edgeCount = CountAllEdgesParallelPartitioner(vertexType, myGraphDS, vertexList); sw.Stop(); tps.Add(edgeCount / sw.Elapsed.TotalSeconds); } myGraphDS.CommitTransaction(null, transactionID); MyWriteLine(String.Format("Traversed {0} edges.", edgeCount)); MyWriteLine(String.Format("Traversed {0} edges. Average: {1}TPS Median: {2}TPS StandardDeviation {3}TPS ", edgeCount, Statistics.Average(tps), Statistics.Median(tps), Statistics.StandardDeviation(tps))); }
public void Execute(IGraphDS myGraphDS, long myIterations, Converter.WriteLineToConsole MyWriteLine) { var transactionID = myGraphDS.BeginTransaction(null); var vertexType = myGraphDS.GetVertexType<IVertexType>(null, transactionID, new RequestGetVertexType(_interestingVertexType), (stats, vType) => vType); var vertices = myGraphDS.GetVertices<IEnumerable<IVertex>>(null, transactionID, new RequestGetVertices(_interestingVertexType), (stats, v) => v); Stopwatch sw = Stopwatch.StartNew(); for (int i = 0; i < myIterations - 1; i++) { CountAllEdgesParallel(vertices); } var edgeCount = CountAllEdgesParallel(vertices); sw.Stop(); myGraphDS.CommitTransaction(null, transactionID); MyWriteLine(String.Format("Counted {0} edges.", edgeCount)); MyWriteLine(String.Format("Traversed {0} edges per second", edgeCount / (sw.Elapsed.TotalSeconds / myIterations))); }
public void Execute(IGraphDS myGraphDS, long myIterations, Converter.WriteLineToConsole MyWriteLine) { var transactionID = myGraphDS.BeginTransaction(null); var vertexType = myGraphDS.GetVertexType<IVertexType>(null, transactionID, new RequestGetVertexType("City"), (stats, vType) => vType); var inCountryProperty = vertexType.GetOutgoingEdgeDefinition("InCountry"); var nameProperty = vertexType.GetPropertyDefinition("Name"); List<double> timeForCityCountryTraversal = new List<double>(); for (int i = 0; i < myIterations; i++) { Stopwatch sw = Stopwatch.StartNew(); foreach (var aCity in myGraphDS.GetVertices<IEnumerable<IVertex>>(null, transactionID, new RequestGetVertices("City"), (stats, v) => v)) { var UK_Vertex = aCity.GetOutgoingSingleEdge(inCountryProperty.ID).GetTargetVertex(); } sw.Stop(); timeForCityCountryTraversal.Add(sw.Elapsed.TotalMilliseconds); } myGraphDS.CommitTransaction(null, transactionID); String result = GenerateTable(timeForCityCountryTraversal) + Environment.NewLine + String.Format("Average: {0}ms Median: {1}ms StandardDeviation {2}ms ", Statistics.Average(timeForCityCountryTraversal), Statistics.Median(timeForCityCountryTraversal), Statistics.StandardDeviation(timeForCityCountryTraversal)); Console.WriteLine(result); MyWriteLine(result); }