成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

計算C++程序運行時間總結

開發 后端
C++程序運行時間作為一個高效的.NET程序語言。其混合了函數語言和物件導向程序編制語言,并且完美的適用于編程、算法、技術和探索性開發,因此可以在使用的過程當中感受到趣味性和吸引力。

我現在用C++語言寫了一段程序,想計算這段程序運行的準確時間,這是要用于跟其它實驗結果作對比的,所以要精確到毫秒,C++程序運行時間 確實很難掌握??!

C++程序運行時間中的計時函數是clock(),而與其相關的數據類型是clock_t。在MSDN中,查得對clock函數定義如下:  

  1. #ifndef   _CLOCK_T_DEFINED     
  2.  typedef   long   clock_t;     
  3.  #define   _CLOCK_T_DEFINED     
  4.  #endif    

這個函數返回從“開啟這個程序進程”到“程序中調用clock()函數”時之間的CPU時鐘計時單元(clock   tick)數,在MSDN中稱之為掛鐘時間(wal-clock)。其中clock_t是用來保存時間的數據類型,在time.h文件中,我們可以找到對 它的定義:  

  1. #ifndef   _CLOCK_T_DEFINED     
  2.  typedef   long   clock_t;     
  3.  #define   _CLOCK_T_DEFINED     
  4.  #endif    

很明顯,clock_t是一個長整形數。在time.h文件中,還定義了一個常量CLOCKS_PER_SEC,它用來表示一秒鐘會有多少個時鐘計時單元,其定義如下:   

  1.  
  2. int   main(   void   )     
  3. {     
  4.       long         i   =   10000000L;     
  5.       clock_t   start,   finish;     
  6.       double     duration;     
  7.       /*   測量一個事件持續的時間*/     
  8.       printf(   "Time   to   do   %ld   empty   loops   is   ",   i   );     
  9.       start   =   clock();     
  10.       while(   i--   )             ;     
  11.       finish   =   clock();     
  12.       duration   =   (double)(finish   -   start)   /   CLOCKS_PER_SEC;     
  13.       printf(   "%f   seconds"n",   duration   );     
  14.       system("pause");     
  15. }    

可以看到每過千分之一秒(1毫秒),調用clock()函數返回的值就加1。下面舉個例子,你可以使用公式clock()/CLOCKS_PER_SEC來計算一個進程自身的C++程序運行時間 :

  1. void   elapsed_time()     
  2.   {     
  3.   printf("Elapsed   time:%u   secs."n",clock()/CLOCKS_PER_SEC);     
  4.   }    

   當然,你也可以用clock函數來計算你的機器運行一個循環或者處理其它事件到底花了多少時間:  

  1.  
  2. int   main(   void   )     
  3. {     
  4.       long         i   =   10000000L;     
  5.       clock_t   start,   finish;     
  6.       double     duration;     
  7.       /*   測量一個事件持續的時間*/     
  8.       printf(   "Time   to   do   %ld   empty   loops   is   ",   i   );     
  9.       start   =   clock();     
  10.       while(   i--   )             ;     
  11.       finish   =   clock();     
  12.       duration   =   (double)(finish   -   start)   /   CLOCKS_PER_SEC;     
  13.       printf(   "%f   seconds"n",   duration   );     
  14.       system("pause");     
  15. }    

上面我們看到時鐘計時單元的長度為1毫秒,那么計時的精度也為1毫秒,那么我們可不可以通過改變CLOCKS_PER_SEC的定義,通過把它定義的大一 些,從而使計時精度更高呢?通過嘗試,你會發現這樣是不行的。在標準C++程序運行時間 中,最小的計時單位是一毫秒。 

【編輯推薦】

  1. C與C++中標準輸入實現方式上的一點區別
  2. C++編譯器如何對Const常量進行分配存儲空間
  3. C++類庫設計的基本構思與方法
  4. 玩轉C++語言的幾種方法
  5. 如何更好的進行C++代碼編制
責任編輯:chenqingxiang 來源: CSDN
相關推薦

2011-08-19 15:05:29

異常處理

2025-03-03 09:10:00

C++開發

2023-11-21 16:31:51

C++語言

2021-08-18 08:32:09

代碼運行時間示波器

2024-01-17 11:24:03

2024-12-09 13:00:00

C++類型安全

2015-07-20 15:44:46

Swift框架MJExtension反射

2020-04-06 11:47:44

Linux命令腳本

2024-03-21 09:15:58

JS運行的JavaScrip

2024-03-28 08:17:46

JestJS服務端

2011-12-27 09:39:12

C#運行時

2019-10-14 09:14:37

Linuxbash命令

2021-05-11 11:52:23

Linuxtime命令

2021-05-10 07:30:07

Linux統計程序

2021-08-11 11:02:17

Linuxtime命令

2019-07-12 09:30:12

DashboardDockerDNS

2021-09-11 15:38:23

容器運行鏡像開放

2021-03-15 08:33:01

CC++動態庫

2022-11-04 09:09:54

Linux服務器

2021-06-24 10:28:19

uptimed命令Linux
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产精品黄色 | 精品一区二区三区不卡 | 正在播放国产精品 | 日韩不卡一区二区 | 久久国产日本 | 欧产日产国产精品v | 亚洲情综合五月天 | 亚洲一二三区在线观看 | 日日噜噜夜夜爽爽狠狠 | 欧美日韩在线一区二区 | 久久精品国产v日韩v亚洲 | 天天爽天天干 | 欧美日韩在线视频一区 | 日韩一区二区在线视频 | 亚洲一区二区三区在线视频 | 久久69精品久久久久久久电影好 | 亚洲免费精品 | 日韩视频一区二区在线 | a精品视频| 成人在线观看免费爱爱 | 国产精品片 | 丁香五月网久久综合 | 久久久久国产精品www | 国产一区欧美 | 国内自拍真实伦在线观看 | 欧美精品一区在线 | 97成人在线| 久久噜噜噜精品国产亚洲综合 | 亚洲国产成人久久久 | 超碰人人插| 欧美极品少妇xxxxⅹ免费视频 | www.婷婷| 日韩免费网站 | 国产性网 | 精品一区二区三区在线播放 | 狠狠热视频 | 午夜精品三区 | 免费看黄色视屏 | 久草在线青青草 | 亚洲精品永久免费 | 黄色网址在线播放 |