如何精確計算出乙個演算法的CPU執行時間

2021-04-02 10:28:14 字數 695 閱讀 9968

在程式中嵌入彙編語句,直接讀出cpu的機器週期。

你需要多精確?  

gettickcount可以到18-20ms進度  

timegettime可以到1ms精度  

……  

當然這些都不是c  or  c++  標準支援的。  

那麼就要祭出最牛奔的方法,  

直接讀取cpu開機以來執行的機器週期數,  

一條彙編指令:rdtsc  (就是  read  timestamp  count)  

精度可以達到ns級別。(準確地說精度是1  /  你的cpu的時鐘頻率,這也是極限)  

long  highstart,lowstart,highend,lowend;  

long  numhigh,numlow;  

__a**  

__int64    timer  =(numhigh<<32)  +  numlow;  //得出最終結果  

原文在這裡:

設計乙個演算法,計算出n階乘中尾部零的個數

樣例 1 輸入 11 輸出 2 樣例解釋 11 39916800,結尾的0有2個。樣例 2 輸入 5 輸出 1 樣例解釋 5 120,結尾的0有1個。思想一 碰到這個問題可能首先想到的就是用乙個for迴圈得到n的階乘,然後在算出末尾有幾個零,這種思想只能在n的階乘在資料型別範圍內,才能正確。一旦n的...

乙個js程式計算出划算的雲主機頻寬

在選擇某阿雲與某騰雲的網路,或者是其它網路的時候,它們的頻寬 簡直是貴的驚人,一般主機提供商都會給大家兩個選擇,乙個是頻寬包月,有限制,另乙個是按量沒有限制,如何才能選擇到適合自己主機的頻寬呢?也是就把 最小化,寬頻最大化。let cons let pretotalmoney 0 let speed...

計算出賬的上乙個入賬時間差

計算各個商戶每一筆出款距離其上一筆入款的時間間隔 分鐘 with tablea as select 1 id,date 2018 1 1 1 dt,0 off from dual union all 0代表入賬 1 代表出賬 select 1 id,date 2018 1 1 0.5 dt,0 of...