如何多次执行Java / Python程序?

时间:2017-06-06 16:42:03

标签: java python

我目前正在完成一项任务,其任务是测量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中做同样的事情。我该怎么做?

4 个答案:

答案 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>