반응형
파이썬에서 코드 실행시간을 측정하는 방법을 찾아 테스트해보았습니다.
파이썬 3.3+ 이상부터 perf_counter와 process_time를 사용할 수 있는데 차이점은 다음과 같습니다.
perf_counter는 sleep 함수를 호출하여 대기한 시간을 포함하여 측정합니다.
process_time는 실제로 연산하는데 걸린 시간만 측정합니다.
실행 결과 process_time는 sleep을 호출하여 1초 대기한 시간을 포함시키지 않은 걸 알 수있습니다.
process_time의 경우 0에 아주 가까운 수로 출력되기도 합니다.
perf_counter와 process_time를 사용하여 파이를 계산해주는 코드를 측정해보았습니다.
실행시켜보았더니 이상하게도 process_time를 사용한 경우 0초로 나옵니다.
우분투와 몇가지 온라인 파이썬으로 실행해보니 다음처럼 process_time도 출력됩니다.
윈도우에서만 제대로 출력안되는 이유를 모르겠네요.
참고로 timeit을 사용하는 경우입니다.
참고
https://stackoverflow.com/a/52228375
반응형
'프로그래밍 노트 > Python' 카테고리의 다른 글
Python에서 코드 실행 시간 측정(perf_counter, process_time, timeit) (3) | 2019.08.27 |
---|---|
파이썬 기초 강좌 (5) | 2019.05.15 |
Python 개념 정리 - 객체란 ( mutable vs immutable ) (2) | 2018.07.19 |
포스트 작성시에는 문제 없었지만 이후 문제가 생길 수 있습니다.
질문을 남겨주면 가능한 빨리 답변드립니다.
여러분의 응원으로 좋은 컨텐츠가 만들어집니다.
지금 본 내용이 도움이 되었다면 유튜브 구독 부탁드립니다.
감사합니다 ~~
유튜브 구독하기
제가 쓴 책도 한번 검토해보세요 ^^
-
bab2min 2020.01.16 16:40
calcPi(1000)는 generator라서 그냥 호출한 것만으로는 아무 연산도 수행하지 않습니다.
for d in calcPi(1000): print(d, end='')
처럼 iteration을 돌아야 실제 함수가 수행됩니다. 따라서 위 코드는 generator가 아무것도 수행하지 않기 때문에 0초나 0에 가까운 값이 나온걸로 보입니다.