zoukankan      html  css  js  c++  java
  • C#计算一段程序运行时间的三种方法

    第一种方法利用System.DateTime.Now

    1. static void SubTest()  
    2. {  
    3.     DateTime beforDT = System.DateTime.Now;    
    4.   
    5.     //耗时巨大的代码  
    6.       
    7.     DateTime afterDT = System.DateTime.Now;  
    8.     TimeSpan ts = afterDT.Subtract(beforDT);  
    9.     Console.WriteLine("DateTime总共花费{0}ms.", ts.TotalMilliseconds);  
    10. }  

    第二种用Stopwatch类(System.Diagnostics)

    1. static void SubTest()  
    2. {  
    3.     Stopwatch sw = new Stopwatch();  
    4.     sw.Start();  
    5.     
    6.     //耗时巨大的代码  
    7.       
    8.     sw.Stop();  
    9.     TimeSpan ts2 = sw.Elapsed;  
    10.     Console.WriteLine("Stopwatch总共花费{0}ms.", ts2.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. 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.   
    14.     //耗时巨大的代码  
    15.       
    16.     QueryPerformanceCounter(ref count1);  
    17.     count = count1 - count;  
    18.     result = (double)(count) / (double)freq;  
    19.     Console.WriteLine("QueryPerformanceCounter耗时: {0} 秒", result);  
    20. }  
  • 相关阅读:
    boost 无锁队列
    boost::asio 的同、异步方式
    MFC获取当前时间
    利用boost获取时间并格式化
    VS2008找不到MFC90d.dll错误解决方法
    boost库在工作(39)网络UDP异步服务端之九
    boost::asio译文
    windows 和linux 同步api对比
    BOOST::Signals2
    redhat 各种版本下载
  • 原文地址:https://www.cnblogs.com/zk-zhou/p/6351819.html
Copyright © 2011-2022 走看看