第一种方法利用System.DateTime.Now:
|
1
2
3
4
5
6
7
8
9
10
|
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);
} |
第二种用Stopwatch类(System.Diagnostics):
|
1
2
3
4
5
6
7
8
9
10
11
|
static void SubTest()
{Stopwatch sw = new Stopwatch();
sw.Start();//耗时巨大的代码sw.Stop();TimeSpan ts2 = sw.Elapsed;Console.WriteLine("Stopwatch总共花费{0}ms.", ts2.TotalMilliseconds);
} |
第三种用API实现:
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
[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);
} |