如何计算for循环所用的总时间

时间:2012-03-22 13:27:32

标签: c# performance for-loop

我的机器细节:32位操作系统(win-7),双核,时钟速度:2.93Ghz,使用的语言= c#

我有循环

for ( long d = 0 d<= K  ; d++) 
{
    //no instrucitons
}

如果K是任何长号。

计算完成此循环所需时间(以秒为单位)的公式是什么?

3 个答案:

答案 0 :(得分:10)

您可以使用Stopwatch.Elapsed Property

Stopwatch class
using System;
using System.Diagnostics;
using System.Threading;
class Program
{
    static void Main(string[] args)
    {
        Stopwatch stopWatch = new Stopwatch();
        stopWatch.Start();
        for (long d = 0; d<= K; d++)   
        {      
        //do something  
        }         
        stopWatch.Stop();
        // Get the elapsed time as a TimeSpan value.
        TimeSpan ts = stopWatch.Elapsed;

        // Format and display the TimeSpan value.
        string elapsedTime = String.Format("{0:00}:{1:00}:{2:00}.{3:00}",
            ts.Hours, ts.Minutes, ts.Seconds,
            ts.Milliseconds / 10);
        Console.WriteLine("RunTime " + elapsedTime);
    }
}

答案 1 :(得分:1)

如果你编译一个没有副作用的空循环(在你的示例中意味着读取K没有副作用),那么执行时间应为零,因为编译器会优化它看到它没有任何用处。

答案 2 :(得分:0)

您可以使用stopwatch

Stopwatch sw = new Stopwatch();
sw.start();
for( long d = 0 d<= K  ; d++) 
{
    //dostuff
}
sw.stop()
debug.writeline(sw.ElapsedMilliseconds);