C#计算程序的运行时间
/// <summary>
/// 计算程序的运行时间
/// </summary>
StopWatch
{
private int mintStart;
public void start()
{
mintStart = Environment.TickCount;
}
public long elapsed()
{
return Environment.TickCount - mintStart;
}
}
在程序的开始和结尾处分别加上 StopWatch(); sw.start(); 和 sw.elapsed();
sw.elapsed();的返回值就是程序的运行时间。
上面的代码是.NET1.1中使用的 可以参考下面.NET2.0中的用法
Stopwatch》
作者:First we try, then we trust 转自:http://www.cnblogs.com/zhenyulu/articles/25326.htm
无论你是搞技术研究还是搞项目开发,高精度的时间测量在很多场合下都是必需的。xiaotie 在其《dotnet下时间精度测量》提到了一个 QueryPerfCounter,它对目前还在使用 Microsoft .NET Framework v1.1 的开发人员来说的确是一个好帮手。但若你已经用上了 Microsoft .NET Framework v2.0,那么 Stopwatch 将会成为你进行高精度时间测量的不二选择。
1. 测试 Stopwatch
这里,我借用一下 xiaotie 在《dotnet下时间精度测量》的测试代码,并给出对应的运行结果:
// Code #01
static void Test1()
{
}
// Output:
//
// Stopwatch 时间精度:0ms
static void Test2()
{
Stopwatch();
int loop = 10000;
int exCount = 0;
for (int i = 0; i < loop; i++)
{
sw.Reset();
sw.Start();
sw.Stop();
if (sw.ElapsedMilliseconds != 0)
{
exCount++;
Console.WriteLine(" }
}
Console.WriteLine("共进行{0}次 }
// Output:
//
// 共进行10000次 Stopwatch 的时间精度异常
// 时间校准有效性100%
static void Test3()
{
Stopwatch();
for (int i = 0; i < 200; i++)
{
sw.Reset();
sw.Start();
sw.Stop();
Console.WriteLine("
sw.Reset();
sw.Start();
int j = 0;
for (j = 0; j < i; j++)
{
int l;
}
sw.Stop();
Console.WriteLine("第{0}次循环,耗时{1}ms", i, sw.ElapsedMilliseconds);
Console.WriteLine();
}
}
// Partial output:
//
// Stopwatch
绝对能够满足挑剔的你!怎么样?手痒了吗?2. 应用 Stopwatch
Stopwatch 位于 System.Diagnostics 命名空间中,它的使用方法非常简单,只要你会用一般的计时器,你就会使用它。
2.1 创建实例
你可以通过 new 或者 Stopwatch 实例:
// Code #02
Stopwatch 实例并马上开始计时,即等效于如下代码:
// Code #03
Stopwatch();
sw2.Start();
2.2 测量时间
// Code #04
sw1.Start();
// Do something here
sw2.Stop();
long elaspsedMilliseconds = sw1.ElaspedMilliseconds;
2.3 应用示例
微软官方提供了一系列示范程序用于演示 Visual Studio 2005,其中 Basic Stopwatch 的 Windows Forms 示例程序,你可以到 101 Samples for Visual Studio 2005 下载示例代码。
3. 深入 Stopwatch
Stopwatch 检测到当前的系统和硬件不支持高精度的计数器时,它将转用我们所熟悉的 DateTime 做法。
Stopwatch 的内部。
- 上一篇 »PHP 计算页面执行时间
- 下一篇 »php测试程序运行速度和页面执行速度的代码