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);
此随笔或为自己所写、或为转载于网络。仅用于个人收集及备忘。

浙公网安备 33010602011771号