C#计算程序运行时间的三种代码方式

第一种方法利用System.DateTime.Now

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

第二种用Stopwatch类(System.Diagnostics)

static void Test()  {      
    Stopwatch sw = new Stopwatch();      
    sw.Start();          
    //耗时巨大的代码            
    sw.Stop();      
    TimeSpan t = sw.Elapsed;      
    Console.WriteLine("Stopwatch总共花费{0}ms.", t.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 Test()  {      
    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);  
}  

猜你喜欢

转载自blog.csdn.net/Mr__FFF/article/details/81631449