Trainer ⏱를 사용하여 Python에서 코드 벤치마킹

코드의 일부를 벤치마킹하고 싶었지만 대부분의 라이브러리에서 기능 범위 수준 측정(더 세분화된 것은 없음)으로 제한한다는 사실을 알게 된 적이 있습니까?

우리 직장에서 했어요. 이 문제를 해결하기 위해 Python contexts의 힘을 활용했습니다. 내가 의미하는 바를 이해하려면 다음 예를 확인하십시오.

def example_func():
    with t('metric1'):
        time.sleep(0.5)

    with t('metric2'):
        time.sleep(0.3)

# ... later in the code

m = t.add_total('total').metrics
print(m)


인쇄물:

{
    'metric1': {'start': 1656844808.09, 'end': 1656844808.59, 'interval': 0.5},
    'metric2': {'start': 1656844808.59, 'end': 1656844808.89, 'interval': 0.3},
    'total': {'start': 1656844808.09, 'end': 1656844808.89, 'interval': 0.8}
} 


Python 컨텍스트("with"문)를 사용하면 벤치마킹 범위가 전체 함수(이 경우 example_func )로 제한되지 않지만 측정하려는 코드의 특정 부분을 들여쓰기할 수 있습니다.

이제 누구나 사용할 수 있고on my GitHub pip를 사용하여 패키지로 설치할 수 있는 Trainer ⏱라고 부르는 짧지만 영리한 코드입니다. 나중에 필요할 수도 있으므로 자유롭게 별을 남겨주세요.

좋은 웹페이지 즐겨찾기