C/C++中計算函式執行時間的兩種方法
在寫程式碼中,有時候我們需要評估某段程式碼或者函式的執行時間;方法就是在該段程式碼或者函式前面,記錄一個時間T1,在程式碼段或函式後面記錄時間T2,那其執行時間就是T2-T1,下面看看具體運算方法:
方法一:
clock()是C/C++中的計時函式,而與其相關的資料型別是clock_t; 標頭檔案:time.h/ctime
在C/C++中,還定義了一個常量CLOCKS_PER_SEC,它用來表示一秒鐘會有多少個時鐘計時單元,其定義如下:
#define CLOCKS_PER_SEC ((clock_t)1000)
程式碼實現:
#include “stdio.h” #include “stdlib.h” #include “time.h” int main( void ) { long i = 10000000L; clock_t start, finish; double duration; /* 測量一個事件持續的時間*/ printf( "Time to do %ld empty loops is ", i ); start = clock(); while( i-- ) ; finish = clock(); duration = (double)(finish - start) / CLOCKS_PER_SEC; printf( "%f seconds\n", duration ); system("pause"); }
- 在筆者的機器上,執行結果如下:
- Time to do 10000000 empty loops is 0.03000 seconds
函式原型:DWORD GetTickCount(void);
標頭檔案: C/C++標頭檔案:winbase.h
windows程式設計中可以使用標頭檔案
核心函式 標頭檔案 函式庫 精度 準確度
ftime sys/timeb.h c函式 ms 較準確
#include <time.h> #include <stdio.h> #include <tchar.h> #include <sys/timeb.h> #include<Windows.h> int main() { struct timeb startTime, endTime; ftime(&startTime); Sleep(1000); ftime(&endTime); printf("time: %d ms\n", (endTime.time - startTime.time) * 1000 + (endTime.millitm - startTime.millitm)); return 0; }
方法三:
GetTickCount是函式。GetTickCount返回(retrieve)從作業系統啟動所經過(elapsed)的毫秒數,它的返回值是DWORD。
#include<iostream>
#include<Windows.h>
using namespace std;
int main()
{
DWORD start_time = GetTickCount();
for (int i = 0; i < 100000000; i++)
{
i++;
}
DWORD end_time = GetTickCount();
cout << "The run time is:" << (end_time - start_time) << "ms!" << endl;
system("pause");
return 0;
}
相關推薦
C/C++中計算函式執行時間的兩種方法
在寫程式碼中,有時候我們需要評估某段程式碼或者函式的執行時間;方法就是在該段程式碼或者函式前面,記錄一個時間T1,在程式碼段或函式後面記錄時間T2,那其執行時間就是T2-T1,下面看看具體
C語言如何計算演算法執行時間
C/C++中的計時函式是clock(),而與其相關的資料型別是clock_t。在MSDN中,查得對clock函式定義如下: clock_t clock( void ); 這個函式返回從“開啟這個程式程序”到“程式中
C語言程式設計 計算程式執行時間 精確到微秒
在開發過程中有時候需要計算一段程式碼執行所消耗的時間 ,使用函式gettimeofday就可以實現,並且可以精確到毫秒 gettimeofday函式原型為: int gettimeofday(struct timeval *tv, struct timezone
linux計算函式執行時間
#ifndef _TIME_USED_H_ #define _TIME_USED_H_ #include <stdio.h> #include <sys/time.h> //
計算函式執行時間
# coding = utf-8from functools import wraps import time def func1(func): @wraps(func) def call_func(*args, **kwargs): start2 = ti
golang一行程式碼計算函式執行時間
package mainimport( "fmt" "time")func main(){ defer timeCost(time.Now()) fmt.Println("start program") time.Sleep(5*time.
C#實現向已存在的Excel檔案中寫入資料例項(兩種方法)
//新增引用 using Excel = Microsoft.Office.Interop.Excel; using System.Reflection; 方法一:將識別結果寫入到Excel表格中(根據指定模版寫入,並將其以當前儲存時間命名另存)
使用python裝飾器計算函式執行時間
裝飾器在python裡面有很重要的作用, 如果能夠熟練使用,將會大大的提高工作效率 今天就來見識一下 python 裝飾器,到底是怎麼工作的。 本文主要是利用python裝飾器計算函式執行時間 一
go利用defer計算函式執行時間
package main import ( "time" "fmt" ) func a() int { defer b(time.Now()) // 這裡不會呼叫b(), 但
【C++】int轉換為string的兩種方法(to_string、字串流)轉載
int轉換成string的兩種方法 第一種是to_string函式,這是C++11新增的,使用非常方便,簡單查了下:C++11標準增加了全域性函式std::to_string,以及std::stoi/stol/stoll等等函式(這幾個就是string轉int,long,以及long lo
vs C++ 靜態庫 生成以及使用的兩種方法
C++靜態庫的生成 1、 vs專案配置:選擇 靜態庫 2、 新建標頭檔案 add.h 3、 新建標頭檔案 add.cpp 4、 執行“生成解決方案”,工程DEBUG目錄如下: C++靜態庫的使用 方法一 1、 新建 win32控制檯應用程式 2、 專案屬性-->c/c
對CUDA核心函式執行時間測量的方法
方法一: cudaEvent_t start1; cudaEventCreate(&start1); cudaEvent_t stop1; cudaEventCreate(&stop1); cudaEventRecord(start
【C++】int轉換為string的兩種方法(to_string、字串流)
記錄一下用到過的int轉換成string的兩種方法 第一種是to_string函式,這是C++11新增的,使用非常方便,簡單查了下:C++11標準增加了全域性函式std::to_string,以及std::stoi/stol/stoll等等函式(這幾個就是string轉i
C#實現匯入匯出Excel資料的兩種方法詳解
這篇文章主要為大家詳細介紹了C#匯入匯出Excel資料的兩種方法,具有一定的參考價值,感興趣的小夥伴們可以參考一下本文為大家分享了C#匯入匯出Excel資料的具體程式碼,供大家參考,具體內容如下注:對於實體類物件最好新建一個並且繼承原有實體類,這樣可以將型別進行修改;方法一:
C++ 將int轉換為string的兩種方法【to_string和sstream】
第一種是to_string函式,C++11新特性,使用非常方便,簡單查了下:c++11標準增加了全域性函式std::to_string,以及std::stoi/stol/stoll等等函式(這幾個就是
Linux下的函式執行時間的統計方法(測試某個函式的執行時間)
重點:一般用 通過gettimeofday函式:如何測試某個函式的執行時間是做實驗時經常用到的功能,在此比較Linux下的測試函式,主要是其精確度。我們採用統一的測試標準程式(standard.c): #include <stdio.h>#define MA
向HTML中插入視頻有兩種方法
rip 新版 服務 解決 all top 解決方案 5.0 ref 向HTML中插入視頻有兩種方法,一種是古老的object標簽,一種是html5中的video標簽,前者兼容性相對好些,後者兼容性讓人頭疼。最常用的向HTML中插入視頻的方法有兩種,一種是古老的<obj
Easyui 彈出加載中的遮罩的兩種方法
datagrid IT hellip pla itl width UNC message function 第一種: //彈出加載層function load() { $("<div class=\"datagrid-mask\"></div&
除法求模中求逆元的兩種方法
除法 模運算 擴展歐幾裏得 tps sdn 求解 blog span emma 今天下午還是有點閑的,不想刷題,不想補題,突然想起昨天的training 3裏I題涉及到除法取模的問題,就來總結一下 首先對於模運算來說,是沒有對於除法的取模的(即沒有(a/b)%mod
python中list轉csv的兩種方法
方法一: name_attribute = ['NumberID','UserID','ModuleID','StartDate','EndDate','Frequent'] writerCSV=pd.DataFrame(columns=name_attribute,data=data) wr