Python 예제가 포함된 Timeit()

⚡ 스마트 요약

Python `timeit()` 함수는 작은 코드 조각을 여러 번 실행하여 최소 실행 시간을 반환함으로써 실행 시간을 측정합니다. `timeit`, `repeat`, `default_timer` 메서드를 지원하며 스크립트 또는 명령줄에서 사용할 수 있습니다.

  • ⏱️ Timeit 정의: 코드 조각의 실행 시간을 측정하여 여러 번 실행했을 때 가장 짧은 시간을 반환합니다.
  • 🧩 매개 변수 : stmt, setup, timer 및 number는 어떤 작업이 실행되고 얼마나 자주 실행되는지를 제어합니다.
  • 🔁 행동 양식: timeit(), repeat(), 및 default_timer() 함수는 서로 다른 타이밍 옵션을 제공합니다.
  • 💻 명령줄: `python -m timeit` 명령어를 `-n`, `-r`, `-s`와 같은 플래그와 함께 실행하세요.
  • 그것을 사용하는 이유: 가비지 컬렉션을 비활성화하고 운영 체제에 따라 가장 정확한 타이머를 선택합니다.

Python 타임잇()

Python 타임잇()?

Python 타임잇() 의 방법이다 Python 주어진 코드 조각의 실행 시간을 측정하는 라이브러리입니다. 그만큼 Python 라이브러리는 코드 문을 1만 번 실행하고 주어진 코드 조각 세트에서 소요된 최소 시간을 제공합니다. Python timeit()은 코드 성능을 확인하는 데 도움이 되는 유용한 메서드입니다.

통사론

timeit.timeit(stmt, setup,timer, number)

파라미터

  • STMT: 실행 시간을 측정하려는 코드가 필요합니다. 기본값은 "통과"입니다.
  • 설치: stmt 전에 실행해야 하는 설정 세부 정보가 있습니다. 기본값은 "pass"입니다.
  • 타이머: 여기에는 타이머 값이 있습니다. timeit()에는 이미 기본값이 설정되어 있으므로 무시할 수 있습니다.
  • 번호: stmt는 여기에 제공된 번호에 따라 실행됩니다. 기본값은 1000000입니다.

timeit()을 사용하려면 아래와 같이 모듈을 가져와야 합니다.

import timeit

첫 번째 예

다음은 timeit() 함수의 간단한 예입니다.

Code 예제 1

# testing timeit()
import timeit
print(timeit.timeit('output = 10*5'))

출력:

0.06127880399999999

우리는 간단한 코드 문 출력 = 10*5의 실행 시간을 제공하는 간단한 예를 보았고 이를 실행하는 데 걸리는 시간은 0.06127880399999999입니다.

Python 코드의 여러 줄 타이밍

timeit.timeit()에서 여러 줄의 코드를 실행하는 방법에는 두 가지가 있습니다. 세미콜론으로 줄을 구분하거나 코드를 세 개의 따옴표로 묶은 문자열로 묶는 것입니다.

다음은 그 작동 방식을 보여주는 예입니다.

예 1: 세미콜론 사용

import timeit
print("The time taken is ",timeit.timeit(stmt='a=10;b=10;sum=a+b'))

출력:

The time taken is  0.137031482

예 2: 삼중따옴표 사용

import timeit
import_module = "import random"
testcode = '''
def test():
    return random.randint(10, 100)
'''
print(timeit.repeat(stmt=testcode, setup=import_module))

출력:

C:\pythontest>python testtimeit.py
The time taken is  0.182619178

timeit – 방법

여기에 2가지 중요한 timeit 메소드가 있습니다.

timeit.default_timer() : 실행 시 기본 시간을 반환합니다.

timeit.repeat(stmt, 설정, 타이머, 반복, 숫자) : timeit() 과 동일하지만, 반복을 사용하면 반복이 제공되는 횟수에 따라 timeit()이 호출됩니다.

프로그램 예 1

# testing timeit()
import timeit
import_module = "import random"
testcode = '''
def test():
    return random.randint(10, 100)
'''
print(timeit.timeit(stmt=testcode, setup=import_module))

출력:

0.46715912400000004

예제 2

default_timer() 예

# testing timeit()

import timeit
import random

def test():
    return random.randint(10, 100)

starttime = timeit.default_timer()
print("The start time is :",starttime)
test()
print("The time difference is :", timeit.default_timer() - starttime)

출력:

The start time is : 0.220261875
The time difference is : 0.0004737320000000045

예시 3: timeit.repeat()

# testing timeit()
import timeit
import_module = "import random"
testcode = '''
def test():
    return random.randint(10, 100)
'''
print(timeit.repeat(stmt=testcode, setup=import_module, repeat=5))

출력:

 [0.43638873, 0.5040939680000001, 0.5069179909999999, 0.3943449330000002, 0.3546886979999999]

timeit.repeat()는 timeit.timeit() 함수와 유사하게 작동하지만, 유일한 차이점은 반복 인수에서 취하고 반복 횟수에 따른 값을 사용하여 배열 형식으로 실행 시간을 반환합니다.

명령줄 인터페이스 내에서 타이밍 함수 timeit.timeit() 실행

명령줄의 timeit() 내에서 함수를 실행하는 구문은 다음과 같습니다.

python -m timeit [-n N] [-r N] [-s S] [-t] [-c] [-h] [code statement ...]

명령줄 매개변수:

  • -n N: 코드를 실행하려는 횟수입니다.
  • -r N: timeit() 함수를 반복하려는 횟수
  • -s S: 코드 실행 전에 실행되는 설정 세부 정보가 포함됩니다.
  • -t: 이를 위해 time.time()을 사용할 수 있습니다.
  • -c: 이를 위해 time.clock()을 사용할 수 있습니다.
  • -h: 도움을 위해
  • 코드 문장: 코드 세부 정보.

예시

C:\pythontest>python -m timeit -s 'text="hello world"'
20000000 loops, best of 5: 13.1 nsec per loop

명령줄 내에서 실행할 수 있는 또 다른 방법은 아래와 같습니다.

예시

>>> import timeit
>>> print("The time taken is ",timeit.timeit(stmt='a=10;b=10;sum=a+b'))
The time taken is  0.15048536300000137
>>>

왜 timeit()이 실행 시간을 측정하는 가장 좋은 방법입니까? Python 암호?

timeit()이 실행 시간을 측정하는 가장 좋은 방법이라고 생각하는 몇 가지 이유는 다음과 같습니다.

  • 기본값인 1만 번 코드문을 실행하고, 그로부터 최소 소요 시간을 반환합니다. time() 함수에 인수 개수를 설정하여 1만개를 늘리거나 줄일 수도 있습니다.
  • 테스트를 실행하는 동안 time() 함수에 의해 매번 가비지 수집이 비활성화됩니다.
  • timeit()은 내부적으로 사용 중인 운영 체제에 따라 정확한 시간을 가져옵니다. 예를 들어 time.clock()을 사용합니다. Windows Mac과 Linux를 위한 운영체제와 time.time().

자주 묻는 질문

timeit.timeit() 함수는 지정된 횟수만큼 명령문을 실행하고 총 시간을 한 번 반환합니다. timeit.repeat() 함수는 전체 측정을 ​​여러 번 실행하고 결과 목록을 반환하여 가장 적합한 결과를 선택할 수 있도록 합니다.

timeit은 측정 중에 가비지 컬렉션을 비활성화하여 백그라운드 정리로 인한 시간 왜곡을 방지합니다. 이를 통해 테스트 대상 코드 조각의 실행 시간에만 집중하여 더욱 일관되고 비교 가능한 결과를 얻을 수 있습니다.

stmt 문자열 내에서 문장들을 세미콜론으로 구분하거나, 여러 줄로 된 문자열을 전달할 때는 세 개의 따옴표를 사용하세요. 함수는 setup 함수에서 정의하고 stmt 함수에서 호출하세요.

AI는 코드 프로파일링, 느린 루프 또는 비용이 많이 드는 호출 식별, 벡터화된 대안 또는 내장 함수 제안, 더 나은 데이터 구조 추천 등을 통해 코드 개발을 지원할 수 있습니다.ping 개발자들은 시간 관리 도구(TimeIt)에서 가장 큰 병목 현상이 나타나는 부분에 최적화 작업을 집중합니다.

네. 주어진 코드 조각과 해당 timeit 결과를 바탕으로 AI는 리스트 컴프리헨션, 제너레이터 표현식 또는 라이브러리 함수와 같은 재작성 방안을 제안할 수 있으며, timeit을 다시 실행하여 개선 사항이 실제로 적용되었는지 확인할 수 있습니다.

이 게시물을 요약하면 다음과 같습니다.