我已经开发了签密方案,我想测试模幂运算所需的时间。我使用以下代码进行签密部分
start = time.clock()
gamma = pow(g , x, p)
print ('The value of gamma is : '),gamma
Time_signcrypt = time.clock() - start
对于unsigncryption部分,我正在计算这行代码的时间
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次的错误,结果大多数时间都有所不同:(
请告知我哪里出错?
答案 0 :(得分:4)
对于时间方法,运行它们多次,直到累计时间至少 10秒,然后将时间除以运行次数。
否则,由于各种原因,时间将非常不准确:
答案 1 :(得分:3)
有一个timeit模块可以完成这种事情。它多次运行您的代码(默认为100万)并报告该运行的统计信息。比试图单次运行更准确,您的代码可能会遇到各种各样的问题。
答案 2 :(得分:1)
由于CPU在不同进程之间不断进行调度,因此每次执行代码时,相同的代码都会花费不同的时间。
第一个函数通常较慢,因为print语句需要“相当长的一段时间”。