第一种方法利用System.DateTime.Now
[csharp]
view
plaincopy
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)
[csharp]
view
plaincopy
static
void
SubTest()
{
Stopwatch
sw
=
new
Stopwatch();
sw.Start();
//耗时巨大的代码
sw.Stop();
TimeSpan
ts2
=
sw.Elapsed;
Console.WriteLine("Stopwatch总共花费{0}ms.",
ts2.TotalMilliseconds);
}
第三种用API实现:
[csharp]
view
plaincopy
[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);
}