我目前正在完成一项任务,其任务是测量Python和Java中许多程序的执行时间,以便测量和比较两种计算机语言的性能。我总共进行了10次测试,共2次;对于每一组,一个测试用Java编写,相应的测试用Python编写,依此类推。我想多次运行每个测试,例如100次,并测量每次运行的时间。然后我想计算获得的执行时间的总和。我将如何在Python / Java中执行此操作?我试过像这样写一个双for循环:
for i in range(1, 100):
for j in range(1, 10000000):
# do integer division
......但它似乎不起作用。我也想在Java中做同样的事情。我该怎么做?
答案 0 :(得分:0)
您可能要添加的第一项是time
命令,它以秒为单位返回当前时间。因此,您可以测量这样的时间跨度:
import time
for i in range(1, 100):
start = time.time()
for j in range(1, 10000000):
# do integer division
finish = time.time()
span = finish - start
# span is the time in seconds.
答案 1 :(得分:0)
import time
for i in range(1,101):
start = time.time()
# do your thing
print(int(time.time() - start))
starts=time.time()
启动计数器。然后print(int(time.time() - start))
将返回以秒为单位的时间。
供参考,请在101
中使用range()
。 range()
的第二个参数是"进入"而不是包含
答案 2 :(得分:0)
long startTime = 0;
for(int i = 0; i <= 100; i++){
startTime = System.nanoTime();
for(int j = 0; j <= 10000000; j++){
//Do integer division
}
}
long endTime = System.nanoTime();
long duration = (endTime - startTime);
System.out.println(duration);
我认为这就是我在Java中看起来的样子。
答案 3 :(得分:0)
的Python:
import time
meas = []
for i in range(100):
start = time.time()
for j in range(10000000):
# do integer division
meas.append(time.time() - start)
爪哇:
long meas[] = new long[100];
for(int i = 0; i < 100; i++){
long start=System.nanoTime();
for(int j = 0; j < 10000000; j++)
// do integer division
}
meas[i] = System.nanoTime()-start;
}
在这两种语言中,你将在'meas'数组中进行100次测量(单位:Java的整数纳秒,Python的浮点秒 - 所以后者也有小数部分),其中每次测量运行10000000次。 / p>