C#测试程序运行时间

一、用C#自带的StopWatch函数

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
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

复制代码
 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 }
复制代码

你可能感兴趣的:(C#)