• C#计算一段程序运行时间的三种方法


    C#计算一段程序运行时间的三种方法

    亲测有效~

    直接代码:
    第一种方法利用System.DateTime.Now

     1         public static void SubTest()
     2         {
     3             DateTime beforeDT = System.DateTime.Now;
     4             int[] a = new int[] { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20 };
     5             //Shuffle(a) is the function you want to test.
     6             Shuffle(a);
     7             DateTime afterDT = System.DateTime.Now;
     8             TimeSpan ts = afterDT.Subtract(beforeDT);
     9             Console.WriteLine("DateTime costed for Shuffle function is: {0}ms",ts.TotalMilliseconds);
    10         }

    第二种用Stopwatch类(System.Diagnostics)

    public static void SubTest() {
        Stopwatch sw = new Stopwatch();
        sw.Start();
        //Shuffle(a) is the function you want to test.
        int[] a = new int[] { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20 };
        Shuffle(a);
        sw.Stop();
        TimeSpan ts = sw.Elapsed;
        Console.WriteLine("DateTime costed for Shuffle function is: {0}ms", ts.TotalMilliseconds);
    }

    第三种用API实现:个人感觉以秒为单位来计算程序耗时,数量级有点大了,还是推荐前面两种毫秒级别的……

     1         [System.Runtime.InteropServices.DllImport("Kernel32.dll")]
     2         static extern bool QueryPerformanceCounter(ref long count);
     3         [System.Runtime.InteropServices.DllImport("Kernel32.dll")]
     4         static extern bool QueryPerformanceFrequency(ref long count);  
     5         public static void SubTest()
     6         {
     7             long count = 0;
     8             long count1 = 0;
     9             long freq = 0;
    10             double result = 0;
    11             QueryPerformanceFrequency(ref freq);
    12             QueryPerformanceCounter(ref count);
    13             //Shuffle(a) is the function you want to test.
    14             int[] a = new int[] { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20 };
    15             Shuffle(a);
    16             QueryPerformanceCounter(ref count1);
    17             count = count1 - count;
    18             result = (double)(count) / (double)freq;
    19             //Note:The result is counted by second.
    20             Console.WriteLine("DateTime costed for Shuffle function is: {0} s", result);
    21         }

    ---------------------

    作者:传说中的汽水枪 
    来源:CSDN 
    原文:https://blog.csdn.net/xzjxylophone/article/details/6832160 
    版权声明:本文为博主原创文章,转载请附上博文链接!

    Well begun is half done ...

  • 相关阅读:
    [NOI2005]维护数列——Splay
    [Poi2000]病毒——补全AC自动机
    POJ1509 Glass Beads——SAM(后缀自动机)
    「NOI2011」阿狸的打字机——AC自动机+树状数组
    7.12Test——Graph Theory 1
    [BJWC2010]严格次小生成树
    7.09Test——DS1
    [SCOI2015]小凸想跑步——半平面交
    词频统计器(第三版)
    四则运算(测试)
  • 原文地址:https://www.cnblogs.com/grj001/p/12224287.html
Copyright © 2020-2023  润新知