第一種方法利用System.DateTime.Now
1 static void SubTest() 2 { 3 DateTime beforDT = System.DateTime.Now; 4 5 //耗時巨大的代碼 6 7 DateTime afterDT = System.DateTime.Now; 8 TimeSpan ts = afterDT.Subtract(beforDT); 9 Console.WriteLine("DateTime總共花費{0}ms.", ts.TotalMilliseconds); 10 }
第二種用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); }