使用
?????????clock()函數是一個計算程序運行時間(其實簡略的理解為占用CPU的使用時間)其實如果使用sleep函數,程序是放棄CPU的使用權,直到某個時間的到來,當然就不會存在占用CPU時間的時候,即使是一個計數的循環,對于CPU來說,也是微不足道的。計數單位:CLOCKS_PER_SEC, clock函數返回的值和CLOCKS_PER_SEC存在密不可分的關系,clock()/CLOCKS_PER_SEC返回的才是秒。在Linux下CLOCKS_PER_SEC是1000000, 在windows下是1000
問題
clock_t是一個32位符號整型,按照理論計算,程序運行24天后,返回值將會由于溢出,變為-1.所以clock函數適合進行簡單的運算時間的計數,不適合作為程序中運行時間的計數,目前應用
std::chrono::time_point_cast<std::chrono::milliseconds>(std::chrono::system_clock::now()).time_since_epoch().count();
進行時間的計數,獲取當前系統日期時間的納秒級計數
注意
類似會產生溢出的函數有 GetTickCount(),所以推薦使用GetTickCount64()進行替換
最精確的計算時間
LARGE_INTEGER t1, t2, tc;
QueryPerformanceFrequency(&tc);
QueryPerformanceCounter(&t1);
//do something
QueryPerformanceCounter(&t2);
int fCount =( t2.QuadPart - t1.QuadPart)*1000 / tc.QuadPart;
另外有需要云服務器可以了解下創新互聯scvps.cn,海內外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業上云的綜合解決方案,具有“安全穩定、簡單易用、服務可用性高、性價比高”等特點與優勢,專為企業上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。
當前名稱:clock函數使用以及問題-創新互聯
標題鏈接:http://vcdvsql.cn/article8/iipip.html
成都網站建設公司_創新互聯,為您提供外貿建站、網站策劃、網站設計公司、商城網站、全網營銷推廣、網站制作
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯