您的位置:首页 > 编程语言 > C#

C#测试程序运行时间

2011-11-08 16:52 483 查看
原文地址:/article/5584851.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

View Code

usingSystem;

usingSystem.Threading;

classClass1

{

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

static extern bool QueryPerformanceCounter(ref longcount);

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

static extern bool QueryPerformanceFrequency(ref longcount);

[STAThread]

static void Main(string[] args)

{

longcount = 0;

longcount1 = 0;

longfreq = 0;

doubleresult = 0;

QueryPerformanceFrequency(reffreq);

QueryPerformanceCounter(refcount);

//需要测试的模块

intheisetoufa;

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

{

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

if(heisetoufa == 5000)

{

Thread.Sleep(10000);

}

}

//需要测试的模块

QueryPerformanceCounter(refcount1);

count = count1 - count;

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

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

Console.ReadLine();

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: