Хронометража следующей программы (которая находится внутри функции штриха) является 110.726383227 секундамиКак повысить эффективность этой программы?
Если я запускаю ту же программу без окружив его функцию (штрих) это время работает в 222.006502634 секундах
Я сделал значительное улучшение производительности путем ее включения в функцию.
все еще есть какая-либо возможность повысить эффективность этой программы?
# This is a program to find sum of prime numbers till 2 billion
def prime():
import time
start_time = time.clock()
num = 2
j=1
tot_sum = 0
for num in xrange(2,2000000):
count = 0
for j in xrange(1,int(num**0.5)+1): # checking from 1 to sqrt(n)+1
if(num % j == 0):
count = count+1
if(count == 1):
tot_sum = tot_sum + num
print "total sum is %d" % tot_sum
print time.clock() - start_time, "seconds"
Используйте 'timeit' модуль для таймингов тестовой программы не' time.clock() '. –
@hcwhsa 'timeit' отлично, но это непрактично, когда один прогон занимает несколько минут. Он предназначен для небольших фрагментов. И использование 'timeit' во времени одного прогона бесполезно (он использует лучший секундомер, но это вряд ли полезно в этом масштабе времени). – delnan
Я думаю, что это связано только с локальным пространством имен (инструкция STORE_FAST), а не с локальным и глобальным пространством имен (инструкция STORE_NAME). В локальном пространстве имен используются регистры, тогда как глобальное пространство имен хранит свои имена и объекты в ОЗУ. Я мог ошибаться. – Shashank