728x90
아주 정밀하게 시간 측정하기
시간을 아주 정밀하게 측정하기 위한 두가지 함수가 있다.
time.perf_counter, time.process_time인데 두가지는 차이점이 있다.
time.process_time는 실제로 연산에 소요된 시간만 측정한다.(sleep, file io등에 소요된 시간은 제외된다.)
time.perf_counter는 전체적으로 흐른 시간을 측정한다.
from time import (
process_time,
perf_counter,
sleep,
)
print(process_time())
sleep(1)
print(process_time())
print(perf_counter())
sleep(1)
print(perf_counter())
Which outputs:
0.03125
0.03125
2.560001310720671e-07
1.0005455362793145
Profile 모듈로 프로파일링하기
def testFunc():
for i in xrange(100000):
t = i * i
if __name__ == '__main__':
import cProfile
cProfile.run('testFunc()')>
Pycallgraph를 이용한 프로파일링
profile.py로 저장한다.
from pycallgraph import PyCallGraph
from pycallgraph.output import GraphvizOutput
import main
with PyCallGraph(output=GraphvizOutput()):
main.run()
python profile.py을 실행하면 프로파일 결과가 pycallgraph.png 이미지 파일로 저장이 된다.
728x90
'Python' 카테고리의 다른 글
파이썬으로 구현한 FTP 연결 및 다운로드 (0) | 2023.05.03 |
---|---|
효율적인 성능, 메모리, 사용성을 위한 파이썬 코드 사례 (0) | 2023.04.26 |
PyPy로 성능 향상시키기 (0) | 2023.04.24 |
코드 실행시간 측정 (0) | 2023.04.24 |
로깅 (0) | 2023.04.24 |