計時器:
(1)
C++的計時器有許多,在此介紹其中一樣:
標頭檔加入 #include <ctime> 或是 #include<time.h>
程式碼如:
int j=0;
clock_t a,b; //建立clock_t變數(長整數形態)以記錄時間,以毫秒(0.001秒)為單位
a=clock(); //a為「程式開始執行」到「本行程式碼被執行」時的時間差
for (int i=0;i<100000000;i++){j=i;}
b=clock(); //b為「程式開始執行」到「本行程式碼被執行」時的時間差
cout<<a<<endl; //顯示46,表示從「程式開始執行」到「a=clock();被執行」時的時間差為46毫秒
cout<<b<<endl; //顯示328,表示從「程式開始執行」到「b=clock();被執行」時的時間差為328毫秒
cout<<double(b)/CLOCKS_PER_SEC<<endl; //顯示0.328。CLOCKS_PER_SEC是C++內建常數,表示經過一秒所要花費的計時單元。由顯示可知,本操作環境系統的CLOCKS_PER_SEC=1000。也就是說,一個計時單元記一毫秒。
註一:由b-a可以估計出系統在進行for (int i=0;i<100000000;i++){j=i;}所需的時間
註二:同樣的程式碼,a和b的時間與電腦CPU功率有關。
註三:同樣的程式碼,若已經編譯過一次,也無更動編譯器再執行一次,則a可能為0。若該程式是第一次被編譯,a可能大於0。這編譯所花的時間也被算在clock()之內了,若該程式碼已經被編譯過一次且無更動編譯器,則省下了編譯的時間直接執行。每次執行,顯示的時間未必一樣。
註四:a=0不代表時間差為0,應是指時間差遠小於1毫秒。
(2)
time_t tt; //建立time_t變數(長整數形態)以記錄時間。單位為秒。
tt=time(NULL); //指派tt為「從1970年1月1日0時0分0秒」到「現在」的時間差,單位為秒。
cout<<tt; //顯示1385883695
留言列表