Время работы программы сильно различается при каждой попытке?

Почему это не займет столько же времени? Это как-то связано с другими программами, фоновыми процессами и т. д.?

import time

def calcProd():
        'Calculates the product of numbers from 1 through 100,000'
        product = 1

    for x in range(1, 100000):
        product *= x

    return product

start = time.time()
calcProd()
end = time.time()

elapsed = round((end - start), 7)

print(elapsed)

и время (в секундах) протестировано следующим образом:

  1. 24.1244698

  2. 22.9401324

  3. 23.3407295

  4. 23.2885954

  5. 23.3982868

  6. 21.177716

Я знаю, что это может показаться тривиальным вопросом, но потерпите меня. И есть ли более эффективный способ выполнить ту же функцию? Спасибо

* Основная часть этого вопроса заключалась в том, чтобы вызвать дискуссию о том, почему время так сильно различается при многократном запуске одной и той же программы. Последняя часть была скорее спонтанным вопросом.


person Rene    schedule 17.12.2016    source источник
comment
Да, ваша программа — не единственное, что работает на вашем компьютере. Дельты составляют около 10%, почти не меняясь «дико». Вы можете увидеть несколько более быстрых алгоритмов факториала здесь >web-beta.archive.org/web/20110727052531/http://   -  person pvg    schedule 18.12.2016
comment
Есть ли более эффективный способ выполнения той же функции? Да, math.factorial().   -  person Martijn Pieters    schedule 18.12.2016