博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C#计算一段程序运行时间的三种方法
阅读量:5218 次
发布时间:2019-06-14

本文共 1107 字,大约阅读时间需要 3 分钟。

第一种方法利用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. }  

转载于:https://www.cnblogs.com/zk-zhou/p/6351819.html

你可能感兴趣的文章
Maximum Product Subarray
查看>>
solr相关配置翻译
查看>>
通过beego快速创建一个Restful风格API项目及API文档自动化(转)
查看>>
解决DataSnap支持的Tcp长连接数受限的两种方法
查看>>
Synchronous/Asynchronous:任务的同步异步,以及asynchronous callback异步回调
查看>>
ASP.NET MVC5 高级编程-学习日记-第二章 控制器
查看>>
Hibernate中inverse="true"的理解
查看>>
高级滤波
查看>>
使用arcpy添加grb2数据到镶嵌数据集中
查看>>
[转载] MySQL的四种事务隔离级别
查看>>
QT文件读写
查看>>
C语言小项目-火车票订票系统
查看>>
15.210控制台故障分析(解决问题的思路)
查看>>
BS调用本地应用程序的步骤
查看>>
常用到的多种锁(随时可能修改)
查看>>
用UL标签+CSS实现的柱状图
查看>>
mfc Edit控件属性
查看>>
Linq使用Join/在Razor中两次反射取属性值
查看>>
[Linux]PHP-FPM与NGINX的两种通讯方式
查看>>
Java实现二分查找
查看>>