获取函数执行时间

标签: Stopwatch DateTime
773人阅读 评论(0) 收藏 举报
分类:

           获取一个函数或者一段代码的执行时间在C#中有以下几种方法。

       第一种方法(获取粗略的时间):

       DateTime startTime = DateTime.Now;//记录将要执行目标代码段的时间点
       
       //_________________要执行的函数______________________
       //Code……
       
       DateTime endTime = DateTime.Now; TimeSpan span = endTime - startTime;
       Console.WriteLine(span);


          第二种方法(获取精确的时间):

       这里需要用到C#提供的一个类StopWatch---(提供一组方法和属性,可用于准确地测量运行时间),它位于System.Diagnostics

命名空间下。

       Stopwatch stopwatch = new System.Diagnostics.Stopwatch();
       stopwatch.Start(); //开始监视目标代码段
 
       //_________________要执行的函数______________________
       //Code……
 
       stopwatch.Stop(); //停止监视目标代码段
       TimeSpan timeSpan = stopwatch.Elapsed; //获取总时间
       double hours = timeSpan.TotalHours; //小时
       double minutes = timeSpan.TotalMinutes;  //分钟
       double seconds = timeSpan.TotalSeconds;  //秒数
       double milliseconds = timeSpan.TotalMilliseconds;  //毫秒数

         第三种方法使用Environment.TickCount属性,它返回获取系统启动后经过的毫秒数。请注意,因为它派生自系统计时器的分辨率

TickCount 属性仅限于系统计时器,它通常在 10 到 16 毫秒为单位的范围的分辨率。使用方法也是如同第一种那样分别进行记录,然

后相减即可

       第四种方法(获取高精度时间):

      [System.Runtime.InteropServices.DllImport("Kernel32.dll")]
      static extern bool QueryPerformanceCounter(ref long PerformanceCounter); //返回高精确度性能计数器的值,用来精确计算执行时间

      [System.Runtime.InteropServices.DllImport("Kernel32.dll")]
      static extern bool QueryPerformanceFrequency(ref long PerformanceFrequency);//返回硬件支持的高精度计数器的频率

      static void Main(string[] args)
    {
          long liPerfFreq = 0, timeStart = 0, timeEnd =0;
      QueryPerformanceFrequency(ref liPerfFreq);
      
          QueryPerformanceCounter(ref timeStart);

          //_________________要执行的函数______________________
          //Code……
          
          QueryPerformanceCounter(ref timeEnd);
          decimal result = (timeEnd - timeStart) / (decimal)liPerfFreq;
          Console.WriteLine(result);
<span style="font-family:KaiTi_GB2312;">          }</span>








查看评论

Windows获取当前系统时间函数总结

(1)使用C标准库(精确到秒级): #include #include int main( void ) { time_t t = time(0); char tmp[64]; st...
  • huang3838438
  • huang3838438
  • 2012-03-27 16:15:52
  • 20481

python实现编写一个@performance,它可以打印出函数调用的时间。

python实现编写一个@performance,它可以打印出函数调用的时间。
  • u012965373
  • u012965373
  • 2016-04-24 15:11:44
  • 2833

C/C++获取程序执行时间的五个方法对比

五种获取C/C++程序执行时间的方法对比如下: 核心函数                                   头文件      函数库      精度     准确度 Qu...
  • shudaxia123
  • shudaxia123
  • 2016-01-10 22:48:10
  • 7446

Linux内核中获取当前时间

7.2. 获知当前时间内核代码能一直获取一个当前时间的表示, 通过查看 jifies 的值. 常常地, 这个值只代表从最后一次启动以来的时间, 这个事实对驱动来说无关, 因为它的生命周期受限于系统的 ...
  • heanyu
  • heanyu
  • 2011-06-17 21:10:00
  • 37642

python获取代码运行时间

有的时候,操作大文件,或者取数,要很久,我们给脚本首尾添加一段代码就知道,这段代码整体的大致运行时间了。import time start =time.clock()#中间写上代码块end = tim...
  • lingan_Hong
  • lingan_Hong
  • 2017-05-26 11:47:53
  • 3347

计算程序运行时间的函数clock()

好几次看到网上有人将各种排序方法用执行时间来进行比较,但一直不知道执行时间是怎么计算出来的,或者说执行时间是调用什么函数才能得到的。今天在做关于大数的问题时,想要计算一下程序执行的时间,经过网上搜索,...
  • walkerkalr
  • walkerkalr
  • 2014-03-06 15:32:40
  • 1890

C#获取程序运行时间

1、使用Stopwatch类 命名空间:System.Diagnostics Stopwatch 实例可以测量一个时间间隔的运行时间,也可以测量多个时间间隔的总运行时间。在典型的 Stopwatch ...
  • pan_junbiao
  • pan_junbiao
  • 2017-06-23 15:18:02
  • 1535

C语言--计算程序执行时间

C语言–计算程序执行时间 ## gettimeofday精度1us #include #includeint main() { /* 定义两个结构体 */ struct timeval...
  • AdmireLinux
  • AdmireLinux
  • 2017-03-15 21:23:14
  • 2074

linux下获取时间函数

1、gettimeofday() 获取的时间为从1970-1-1 00:00:00到目前为止的时间。 当使用该函数获取ms级别时间时,需注意溢出问题。 1)首先来看一下函数原型: in...
  • u014650722
  • u014650722
  • 2017-05-24 11:09:29
  • 440

获取函数执行时间

Pratice Make Perfect
  • csdn987
  • csdn987
  • 2016-10-12 16:13:36
  • 773
    个人资料
    等级:
    访问量: 768
    积分: 17
    排名: 223万+
    文章分类
    文章存档
    阅读排行