加入收藏 | 设为首页 | 会员中心 | 我要投稿 北几岛 (https://www.beijidao.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

如何测量C#代码的运行时间

发布时间:2021-07-06 05:56:20 所属栏目:大数据 来源: https://blog.csdn.net/kasama1
导读:如何测量C#代码的运行时间 (1)用Datatime和TmeSpan 这个不说了,在要测量的代码前后加上2个DateTime.Now,2者相减,得到一个TmeSpan。 DateTime d = DateTime.Now; for (int i = 0; i 1000; i++) { ?++i; } Console.WriteLine(DateTime.Now - d); (2)用

如何测量C#代码的运行时间

(1)用Datatime和TmeSpan

这个不说了,在要测量的代码前后加上2个DateTime.Now,2者相减,得到一个TmeSpan。

DateTime d = DateTime.Now;

for (int i = 0; i < 1000; i++)

{

?++i;

}

Console.WriteLine(DateTime.Now - d);

(2)用Stopwatch,简单,明了,精确。

// 使用 StopWatch 进行测量

Stopwatch sw = new Stopwatch();

sw.Start();

?

?for (int i = 0; i < 1000; i++) { ++i; }

sw.Stop();

Console.WriteLine(sw.Elapsed);

StopWatch?几个关键属性和方法。?
Elapsed?:获取当前实例测量得出的总运行时间。在测试期间或者结束时均可获取。?
IsRunning?:?获取一个指示?Stopwatch?计时器是否在运行的值。??
Start?:?开始或继续测量某个时间间隔的运行时间。?多次调用?Start?前,需要使用?Reset?重置,否则会累加多次测量结果。?
Stop?:?停止测量某个时间间隔的运行时间。?
Reset?:?停止时间间隔测量,并将运行时间重置为零。

(3)使用QueryPerformanceFrequency函数和QueryPerformanceCounter函数,这个比较麻烦,还用到了Interop。

?

using System;

class Class1
{
    [System.Runtime.InteropServices.DllImport("Kernel32.dll")]
    static extern bool QueryPerformanceCounter(ref long count);

    [System.Runtime.InteropServices.DllImport("Kernel32.dll")]
    static extern bool QueryPerformanceFrequency(ref long count);

    [STAThread]
    static void Main(string[] args)
    {
        long count = 0;
        long count1 = 0;
        long freq = 0;
        double result = 0;

        QueryPerformanceFrequency(ref freq);
        QueryPerformanceCounter(ref count);

        //开始的时候没有这层循环,所得数据浮动很大,添加这层循环来使得结果更加平均
        for (int i = 0; i < 500; i++)
        {
            //需要测试的模块
        }

        QueryPerformanceCounter(ref count1);

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

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

(编辑:北几岛)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读