[英]Timing function in python not giving accurate result
我已經開發了一種用於簽密的方案,我想測試模塊化求冪的時間。 我正在將以下代碼用於簽密部分
start = time.clock()
gamma = pow(g , x, p)
print ('The value of gamma is : '),gamma
Time_signcrypt = time.clock() - start
對於非解密部分,我正在計算這段代碼所花費的時間
start = time.clock()
seed = (XA + x - XA)
gamma_new = pow(g , seed, p)
Time_new_gamma = time.clock() - start
問題是使用相同的值,我從兩個計時功能獲得的結果都不同。
Signcryption values:
0.035299674
0.025940017
Unsigncryption values:
0.019342944
0.01727206
這些值應與在兩端使用相同參數的相同功能相同。 另一個重要的事情是,在非加密部分中,一個步驟是附加的,但是所花費的時間仍小於簽名解密部分。 我聽不清是什么錯誤,我已經測試了近35次,並且大多數時候結果都不同:(
請指教我哪里出問題了?
要對方法計時,請多次運行它們,直到累計時間至少為 10秒,然后將時間除以運行次數。
否則,由於各種原因,時間安排將非常不准確:
有一個timeit模塊可以完成這種事情。 它會多次運行您的代碼(默認情況下為100萬次),並報告該次運行的統計信息。 比嘗試計時單個運行要准確得多,在這種情況下,您的代碼可能會遇到各種各樣的問題。
由於CPU在不同進程之間不斷調度,因此每次執行同一段代碼都會花費不同的時間。
通常,第一個函數會變慢,因為有print語句,這需要“相當多”的時間。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.