这意味着系统时钟粒度过大,以精确地测量这样的事情 - 换句话说,调用构造函数很快发生。
但是,您可以使用更适合精确定时的类 - 或者至少可以利用高精度时钟(如果有):Stopwatch
。
Stopwatch sw = Stopwatch.StartNew();
Graph_SearchBFS BFS = new Graph_SearchBFS(Graph, sourceCell, targetCell);
sw.Stop();
现在你可以看看sw.Elapsed
属性,看看它花了多长时间。
当然,完全有可能它会仍然太快而无法测量。通常,对于基准测试,您需要做足够的事情,以便在数秒内完成时间,而不是单次操作。
顺便说一下,您的Graph_SearchBFS
构造函数实际上在做什么工作?如果是这样,那也是一种设计气味。通常我希望代码更像这样:
Graph_SearchBFS BFS = new Graph_SearchBFS(Graph);
Stopwatch sw = Stopwatch.StartNew();
BFS.FindCell(sourceCell, targetCell);
sw.Stop();
或类似的东西。然后你就可以循环很多次在“发现”部分:
Graph_SearchBFS BFS = new Graph_SearchBFS(Graph);
Stopwatch sw = Stopwatch.StartNew();
for (int i = 0; i < Iterations; i++)
{
BFS.FindCell(sourceCell, targetCell);
}
sw.Stop();
是构造进行搜索,我从一本书上工作。 – pokoko222
@ pokoko222:哦,亲爱的 - 这本书不是非常好的标志:(顺便说一下,也不是类名。) –