Stopwatch计时计算一段程序的运行毫秒数

方法一:用System.DateTime.Now

static void SubTest()  
{  
    DateTime beforDT = System.DateTime.Now; 
    //耗时巨大的代码  
      
    DateTime afterDT = System.DateTime.Now;  
    TimeSpan ts = afterDT.Subtract(beforDT);  
    Console.WriteLine("DateTime总共花费{0}ms.", ts.TotalMilliseconds);  
}  

 

var watch = Stopwatch.StartNew();

···

watch.Stop();

  LogFactory.DefaultLog().Info($"OtsOrderPrintPartial总耗时:{watch.Elapsed.Seconds}秒{watch.Elapsed.Milliseconds}毫秒");

方法二:用Stopwatch类(System.Diagnostics)

static void SubTest()
{
    Stopwatch sw = new Stopwatch();
    sw.Start();  
    //耗时巨大的代码    
    sw.Stop();
    TimeSpan ts2 = sw.Elapsed;
    Console.WriteLine("Stopwatch总共花费{0}ms.", ts2.TotalMilliseconds);
}

 

方法三:用API实现

[System.Runtime.InteropServices.DllImport("Kernel32.dll")]
static extern bool QueryPerformanceCounter(ref long count);
[System.Runtime.InteropServices.DllImport("Kernel32.dll")]
static extern bool QueryPerformanceFrequency(ref long count);   
static void SubTest()
{
    long count = 0;
    long count1 = 0;
    long freq = 0;
    double result = 0;
    QueryPerformanceFrequency(ref freq);
    QueryPerformanceCounter(ref count);  
    //耗时巨大的代码
    QueryPerformanceCounter(ref count1);
    count = count1 - count;
    result = (double)(count) / (double)freq;
    Console.WriteLine("QueryPerformanceCounter耗时: {0} 秒", result);
}

 

Stopwatch stop = Stopwatch.StartNew();
        Thread.Sleep(1000);
        stop.Restart();
        Thread.Sleep(1000);
        Console.WriteLine(stop.ElapsedMilliseconds);

 

posted @ 2016-12-03 20:18  BloggerSb  阅读(1261)  评论(0)    收藏  举报