• 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 ...

  • 相关阅读:
    linux下的开源移动图像监测程序--motion编译与配置【转】
    motion程序的移植和安装【转】
    Android5.1 在init.rc 中添加自己的服务【转】
    Android进程回收机制LMK(Low Memory Killer)【转】
    Linux内核OOM机制的详细分析【转】
    Android——build.prop 解析【转】
    Android——build.prop 解析【转】
    【转】ios的控件UIScrollView的位置定位---------逐渐积累
    【转】IOS图像拉伸解决方案
    【转】NSString属性什么时候用copy,什么时候用strong?
  • 原文地址:https://www.cnblogs.com/grj001/p/12224286.html
Copyright © 2020-2023  润新知