(기능 프라임 안에) 다음 프로그램의 실행 시간이 222.006502634 초이 프로그램의 효율성을 높이는 방법은 무엇입니까?
내가 만든이 시간을 실행중인 함수 (주요)에 포장없이 110.726383227 초
내가 같은 프로그램을 실행하면
을이다 그것을 함수에 랩핑함으로써 상당한 성능 향상을 가져 왔습니다.이 프로그램의 효율성이 여전히 향상 될 가능성이 있습니까?
# 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_NAME 명령)가 아닌 로컬 네임 스페이스 (STORE_FAST 명령) 만 처리해야하기 때문입니다. 로컬 네임 스페이스는 전역 네임 스페이스가 이름과 개체를 RAM에 저장하는 동안 레지스터를 사용합니다. 나는 틀릴 수 있었다. – Shashank