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 的内部。