반응형
목차
파이썬 timeit 함수 Syntax
sort (정렬)이나 랜덤(Random)값을 만들거나 함수를 만들어서 동작하는데 시간이 얼마나 걸리는지 확인하는 작업은 중요합니다. 코드가 얼마나 효율적으로 만들었는지 알 수 있는 지표이기 때문입니다. 시간 측정을 위해 파이썬(Python)에서 제공하는 timeit 이라는 함수를 사용하면 쉽게 동작 시간(Operation Time)을 측정 할 수 있습니다.
Syntax는 아래와 같습니다.
timeit.timeit(stmt='함수/코드', setup='경로포함', number=동작횟수)
timeit.repeat(stmt='함수/코드', setup='경로포함', number=동작횟수, repeat=반복횟수)
timeit 은 반복 측정이냐 한번 측정이냐에 따라 timeit 함수와 repeat 함수를 사용 합니다.
- stmt : 측정하고자 하는 함수나 코드를 " " 안에 넣습니다.
- setup : 함수를 측정하고자 하면 함수를 불러오는 작업을 합니다.
- number : 함수/코드를 몇번 실행할지를 결정 합니다.
- repeat : number에서 결정한 횟수로 몇번 반복 측정할 지를 결정 합니다.
위 주석이 이해가 되지 않으시면 아래 코드를 보시면 쉽게 이해할 수 있습니다.
파이썬 timeit 함수 예제 실행
예제 코드>>
import timeit
import random
def random_gen(num):
for x in range(num):
random.random()
time1 = timeit.timeit(stmt='random_gen(100)', setup='from __main__ import random_gen', number=2)
time2 = timeit.repeat(stmt='random_gen(100)', setup='from __main__ import random_gen', number=1, repeat=3)
print("time1 :", time1)
print("time2 :", time2)
4~6 번 라인: 시간을 측정할 random 생성 함수를 만듭니다.
8번 라인 : random_get 함수를 2번 실행 시키고 시간을 측정 합니다. setup을 통해 해당 함수 위치를 포함 합니다.
9번 라인 : number 1로 한번 실행하고 3번 반복해서 시간을 측정 합니다.
결과>>
time1 : 6.349990144371986e-05
time2 : [2.5900080800056458e-05, 2.8899870812892914e-05, 2.5700079277157784e-05]
time1은 두번 동작을 시켰기 때문에 약 2배 가까운 시간이 걸렸고 time2는 한번 동작을 3번 반복한 결과를 불러 옵니다.
아래 예제는 단순 명령만 넣을 경우 실행시간을 측정하는 코드입니다. 함수가 아닌 명령이므로 setup을 설정할 필요가 없습니다.
예제 코드>>
import timeit
import random
time1 = timeit.timeit(stmt='[x for x in range(100)]', number=2)
time2 = timeit.repeat(stmt='[x for x in range(100)]', number=1, repeat=3)
print("time1 :", time1)
print("time2 :", time2)
결과>>
time1 : 2.6099849492311478e-05
time2 : [8.499948307871819e-06, 6.6999346017837524e-06, 6.300164386630058e-06]
반응형
'파이썬(Python) > 문법' 카테고리의 다른 글
[Python] 정규표현식으로 파일(XML, txt, html) 내용 검색(필터)하기 (re, match, compile, finditer) (0) | 2022.06.02 |
---|---|
[Python] 키보드(keyboard) 이벤트(event) 값 읽기 (2) | 2022.03.25 |
[Python] 소수점 자리 올림, 반올림, 내림 (0) | 2022.02.23 |
[Python] pip install 에러 발생 시 해결 책 (0) | 2022.01.19 |
[Python] Percent, Percentile 이란? 파이썬으로 쉽게 구해보기 (0) | 2022.01.06 |