我已经开发了一个签密方案,我想测试模幂运算所花费的时间。我在签密部分使用下面的代码
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 秒,然后将时间除以运行次数。
否则,由于各种原因,时间会很不准确:
- 其他获得CPU的进程
- 中断在后台运行
- 热效应
- 宇宙辐射
- 你明白了.. ;-)
关于python - python中的计时函数没有给出准确的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3132137/