2014-04-01 4 views
0

저는 cProfile을 처음 사용합니다. 내 코드가 왜 그렇게 느린가요?

나는 내 프로그램에 cprofile 명령을 실행하고이 뱉어 :

ncalls tottime percall cumtime percall filename:lineno(function) 
     1 290.732 290.732 313.069 313.069 newad.py:1(<module>) 

newad.py의 첫 번째 줄은 다음과 같습니다

1 from datetime import date 

이 많은 시간을 가정이 줄 수 있습니까? 대신 무엇을 할 수 있습니까?

+1

어떻게 cProfile을 실행 했습니까? 모듈에 import 문 이외의 내용이 포함되어 있습니까? –

+0

@PeterGibson cProfile을 다시 실행했습니다. 이번에는 import 문이 가장 많은 시간을 차지한 것으로 확인되었습니다. 나는 그 질문을 편집하고있다. –

+0

이 결과가 "잘못"이라고 생각되면 대신 예상했던 결과가 있습니까? – Deestan

답변

3

cProfile은 해당 모듈에서 보낸 시간을 보여줍니다. 행 번호는 해당 모듈에서 처리되는 첫 번째 명령문을 나타낼뿐입니다. 다중 행 문서화 문자열이 있기 때문에 문서화 문자열의 마지막 행을 표시합니다.

""" 
Test module for cProfile stats 

""" 



import time 

def wait(t): 
    time.sleep(t) 

wait(5) 

준다 : 두 번째 라인이 모듈에 소요되는 시간을 나타내고있다

$ python -m cProfile test.py 
     4 function calls in 5.002 seconds 

    Ordered by: standard name 

    ncalls tottime percall cumtime percall filename:lineno(function) 
     1 0.000 0.000 5.001 5.001 test.py:10(wait) 
     1 0.001 0.001 5.002 5.002 test.py:4(<module>) 
     1 0.000 0.000 0.000 0.000 {method 'disable' of '_lsprof.Profiler' objects} 
     1 5.001 5.001 5.001 5.001 {time.sleep} 

주 첫 줄이 funciton wait에 소요되는 시간을 나타낸다.

+0

고마워요! 나는 왜 이것이 작동하지 않는지 알아 내려고 미쳤어 요. 모듈 내에서 코드를 최적화하려면 ... –

관련 문제