我编写了自己的字符串匹配算法,我想准确地测量它的时间,将其与其他算法进行比较,以检查我的实现是否更好。
我尝试过(StopWatch),但它在每次运行时给出不同的时间,因为Windows OS运行多个进程。我听说(RDTSC)可以得到消耗的周期数,但我不知道它是否在每次执行中也给出了不同的周期数?
请帮帮我,(RDTSC)能给出一个准确且相同的C#函数周期的度量吗,或者它类似于(StopWatch)?在没有其他正在运行的进程的情况下,单独获取C#函数的周期数的最佳方法是什么?非常感谢您的任何帮助或提示
发布于 2011-01-20 00:26:32
由于
操作系统有多个进程在运行,所以每次运行的时间都不同。
这是所有基准测试的本质。
好的基准测试通过统计手段来抵消这一点,例如,测量频率足以抵消来自其他运行程序的任何副作用。这就是我们要走的路。就精度而言,StopWatch对于基准测试来说已经足够了。
这需要做几件事(不涉及统计细节,我也不太擅长):
发布于 2011-01-20 00:26:48
我认为为了获得最准确的信息,你应该使用GetThreadTimes():http://msdn.microsoft.com/en-us/library/ms683237%28v=vs.85%29.aspx在链接中有使用C#中函数的签名。
https://stackoverflow.com/questions/4737747
复制相似问题