Python 타이머 구현

문제.
프로그램 이 여러 작업 을 수행 하 는 데 걸 린 시간 을 기록 하고 싶 습 니까?
해결 방안
time 모듈 은 시간 과 관련 된 함 수 를 수행 하기 위해 많은 함 수 를 포함 하고 있 습 니 다.그럼 에 도 불구 하고 우 리 는 보통 이 기초 위 에 더 높 은 인 터 페 이 스 를 만들어 타 이 머 를 모 의 한다.예 를 들 면:

import time

class Timer:
  def __init__(self, func=time.perf_counter):
    self.elapsed = 0.0
    self._func = func
    self._start = None

  def start(self):
    if self._start is not None:
      raise RuntimeError('Already started')
    self._start = self._func()

  def stop(self):
    if self._start is None:
      raise RuntimeError('Not started')
    end = self._func()
    self.elapsed += end - self._start
    self._start = None

  def reset(self):
    self.elapsed = 0.0

  @property
  def running(self):
    return self._start is not None

  def __enter__(self):
    self.start()
    return self

  def __exit__(self, *args):
    self.stop()
이 클래스 는 사용자 가 필요 에 따라 시작,정지,리 셋 할 수 있 는 타 이 머 를 정의 합 니 다.그것 은elapsed 속성 에 전체 소모 시간 을 기록 합 니 다.다음은 그것 을 어떻게 사용 하 는 지 보 여 주 는 예 입 니 다.

def countdown(n):
  while n > 0:
    n -= 1

# Use 1: Explicit start/stop
t = Timer()
t.start()
countdown(1000000)
t.stop()
print(t.elapsed)

# Use 2: As a context manager
with t:
  countdown(1000000)

print(t.elapsed)

with Timer() as t2:
  countdown(1000000)
print(t2.elapsed)
토론 하 다.
이 절 은 시간 기록 과 시간 소모 계산 을 실현 하기 위해 간단 하고 실 용적 인 유형 을 제공 했다.with 구문 과 컨 텍스트 관리자 프로 토 콜 을 사용 하 는 데 도 좋 은 프 리 젠 테 이 션 입 니 다.
시간 계산 에서 밑바닥 의 시간 함수 문 제 를 고려 해 야 한다.일반적으로 사용time.time() 또는time.clock() 으로 계 산 된 시간 정밀 도 는 운영 체제 에 따라 다르다.그리고 time.perf_counter() 함 수 를 사용 하면 시스템 에서 가장 정확 한 타 이 머 를 사용 할 수 있 습 니 다.
상기 코드 에Timer류 로 기 록 된 시간 은 시계 시간 이 며 모든 휴면 시간 을 포함한다.이 프로 세 스에 걸 리 는 CPU 시간 만 계산 하려 면 time.process 를 사용 해 야 합 니 다.time()로 대체:

t = Timer(time.process_time)
with t:
  countdown(1000000)
print(t.elapsed)
time.perf_counter() time.process_time() 모두 소수 형식의 초 수 시간 을 되 돌려 준다.실제 시간 값 은 아무런 의미 가 없습니다.의미 있 는 결 과 를 얻 기 위해 서 는 두 번 의 함 수 를 실행 한 후에 그들의 차 이 를 계산 해 야 합 니 다.
이상 은 파 이 썬 이 타 이 머 를 실현 하 는 상세 한 내용 입 니 다.파 이 썬 타이머 에 관 한 더 많은 자 료 는 우리 의 다른 관련 글 을 주목 하 세 요!

좋은 웹페이지 즐겨찾기