zoukankan      html  css  js  c++  java
  • 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         }
    View Code

    第二种用Stopwatch类(System.Diagnostics)

     1         public static void SubTest()
     2         {
     3             Stopwatch sw = new Stopwatch();
     4             sw.Start();
     5             //Shuffle(a) is the function you want to test.
     6             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 };
     7             Shuffle(a);
     8             sw.Stop();
     9             TimeSpan ts = sw.Elapsed;
    10             Console.WriteLine("DateTime costed for Shuffle function is: {0}ms", ts.TotalMilliseconds);
    11         }
    第三种用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         }
    View Code

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

    作者:传说中的汽水枪
    来源:CSDN
    原文:https://blog.csdn.net/xzjxylophone/article/details/6832160
    版权声明:本文为博主原创文章,转载请附上博文链接!
  • 相关阅读:
    AS3的内存泄漏与垃圾回收
    Unity序列化和持久化
    首发|创业3年半,做8款App全部扑街;转做公众号5个月,零成本吸粉12万还拿了百万天使轮
    为什么成功的人都不太要脸?
    浅谈2040年的职业环境应该是怎么样的?
    2040年的职业环境应该是怎么样的?
    潮汕牛肉火锅,美味在你身边
    要闻:2016胡润百富榜昨天发布 宝能姚振华从炸油条到千亿身家“大黑马”
    海报设计灵感:简约独特的图形图案排版 by Quim Marin
    摄影的基础美学详解
  • 原文地址:https://www.cnblogs.com/I-am-Betty/p/10489787.html
Copyright © 2011-2022 走看看