C#测试程序运行时间,转 测试程序运行时间

原文:http://www.cnblogs.com/kavilee/archive/2010/12/13/1904274.html

一、用C#自带的StopWatch函数

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Diagnostics;

namespace StopWatch

{

class Program

{

static void Main(string[] args)

{

Stopwatch sw = new Stopwatch();

sw.Start();

//这里填写要执行的代码

sw.Stop();

Console.WriteLine("总运行时间:" + sw.Elapsed);

Console.WriteLine("测量实例得出的总运行时间(毫秒为单位):" + sw.ElapsedMilliseconds);

Console.WriteLine("总运行时间(计时器刻度标识):" + sw.ElapsedTicks);

Console.WriteLine("计时器是否运行:" + sw.IsRunning.ToString());

}

}

}

运行结果如下:

总运行时间:00:00:00.0000013

测量实例得出的程序运行时间(毫秒为单位):0

总运行时间(计时器刻度标识):5

计时器是否运行:False

二、用API函数QueryPerformanceFrequency

using System;

using System.Threading;

class Class1

{

[System.Runtime.InteropServices.DllImport("Kernel32.dll")]

staticexternbool QueryPerformanceCounter(reflong count);

[System.Runtime.InteropServices.DllImport("Kernel32.dll")]

staticexternbool QueryPerformanceFrequency(reflong count);

[STAThread]

staticvoid Main(string[] args)

{

long count = 0;

long count1 = 0;

long freq = 0;

double result = 0;

QueryPerformanceFrequency(ref freq);

QueryPerformanceCounter(ref count);

//需要测试的模块

int heisetoufa;

for (heisetoufa = 1; heisetoufa < 10000; heisetoufa++)

{

Console.WriteLine("第" + heisetoufa + "行");

if (heisetoufa == 5000)

{

Thread.Sleep(10000);

}

}

//需要测试的模块

QueryPerformanceCounter(ref count1);

count = count1 - count;

result = (double)(count) / (double)freq;

Console.WriteLine("耗时: {0} 秒", result);

Console.ReadLine();

}

}

一、用C#自带的StopWatch函数

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Diagnostics;

namespace StopWatch

{

class Program

{

static void Main(string[] args)

{

Stopwatch sw = new Stopwatch();

sw.Start();

//这里填写要执行的代码

sw.Stop();

Console.WriteLine("总运行时间:" + sw.Elapsed);

Console.WriteLine("测量实例得出的总运行时间(毫秒为单位):" + sw.ElapsedMilliseconds);

Console.WriteLine("总运行时间(计时器刻度标识):" + sw.ElapsedTicks);

Console.WriteLine("计时器是否运行:" + sw.IsRunning.ToString());

}

}

}

运行结果如下:

总运行时间:00:00:00.0000013

测量实例得出的程序运行时间(毫秒为单位):0

总运行时间(计时器刻度标识):5

计时器是否运行:False

二、用API函数QueryPerformanceFrequency

using System;

using System.Threading;

class Class1

{

[System.Runtime.InteropServices.DllImport("Kernel32.dll")]

staticexternbool QueryPerformanceCounter(reflong count);

[System.Runtime.InteropServices.DllImport("Kernel32.dll")]

staticexternbool QueryPerformanceFrequency(reflong count);

[STAThread]

staticvoid Main(string[] args)

{

long count = 0;

long count1 = 0;

long freq = 0;

double result = 0;

QueryPerformanceFrequency(ref freq);

QueryPerformanceCounter(ref count);

//需要测试的模块

int heisetoufa;

for (heisetoufa = 1; heisetoufa < 10000; heisetoufa++)

{

Console.WriteLine("第" + heisetoufa + "行");

if (heisetoufa == 5000)

{

Thread.Sleep(10000);

}

}

//需要测试的模块

QueryPerformanceCounter(ref count1);

count = count1 - count;

result = (double)(count) / (double)freq;

Console.WriteLine("耗时: {0} 秒", result);

Console.ReadLine();

}

}