原文地址:
一、用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
1 usingSystem; 2 3 usingSystem.Threading; 4 5 classClass1 6 7 { 8 9 [System.Runtime.InteropServices.DllImport("Kernel32.dll")] 10 11 static extern bool QueryPerformanceCounter(ref longcount); 12 13 [System.Runtime.InteropServices.DllImport("Kernel32.dll")] 14 15 static extern bool QueryPerformanceFrequency(ref longcount); 16 17 [STAThread] 18 19 static void Main(string[] args) 20 21 { 22 23 longcount = 0; 24 25 longcount1 = 0; 26 27 longfreq = 0; 28 29 doubleresult = 0; 30 31 QueryPerformanceFrequency(reffreq); 32 33 QueryPerformanceCounter(refcount); 34 35 //需要测试的模块 36 37 intheisetoufa; 38 39 for(heisetoufa = 1; heisetoufa < 10000; heisetoufa++) 40 41 { 42 43 Console.WriteLine("第" + heisetoufa + "行"); 44 45 if(heisetoufa == 5000) 46 47 { 48 49 Thread.Sleep(10000); 50 51 } 52 53 } 54 55 //需要测试的模块 56 57 QueryPerformanceCounter(refcount1); 58 59 count = count1 - count; 60 61 result = (double)(count) / (double)freq; 62 63 Console.WriteLine("耗时: {0} 秒", result); 64 65 Console.ReadLine(); 66 67 } 68 69 }