python - python中的计时函数没有给出准确的结果

标签 python timing

我已经开发了一个签密方案,我想测试模幂运算所花费的时间。我在签密部分使用下面的代码

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 秒,然后将时间除以运行次数。

否则,由于各种原因,时间会很不准确:

  1. 其他获得CPU的进程
  2. 中断在后台运行
  3. 热效应
  4. 宇宙辐射
  5. 你明白了.. ;-)

关于python - python中的计时函数没有给出准确的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3132137/

相关文章:

python - 使用 gnuplot python 绘制线条

python - StatsModels:为什么我们必须拟合模型?

cudaEvent 和 gettimeofday 报告的时间截然不同

javascript - setTimeout 如何在下面的时钟代码中像 setInterval 一样工作,甚至 setTimeout 只执行一次?

javascript - 如何在给定的时间间隔重复具有相同参数的函数(目前正在尝试使用 setTimout)

linux - 如何从 Linux 中的用户空间获得毫秒级精度的正常运行时间?

python - 使用 CDATA 获取元素的文本

python - 如何计算另一个列表中列表(作为 pandas 列)中的匹配元素的数量

python-mode 6.0.12 返回或传递后缩进

jquery - 在窗口加载时逐渐淡入元素