C# 计算程序运行时间
net写了一段程序,所以要精确到毫秒,想计算这段程序运行的准确时间。请问一下。这是要用于跟其它实验结果作对比的,如何计时呢?感谢万分我现在用C#...
net写了一段程序,所以要精确到毫秒,想计算这段程序运行的准确时间。请问一下。这是要用于跟其它实验结果作对比的,如何计时呢? 感谢万分我现在用C#
展开
展开全部
第一种方法利用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);
}
[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);
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询