Python은 데코레이터를 사용하여 프로그램 실행 시간을 계산합니다.

최근에는 프로그램을 실행할 때 프로그램의 실행 시간을 여러 번 세어 최적화해야합니다. 생각하는 것은 상대적으로 간단하지만 시간 통계의 물결이있을 때마다 반복해서 작성할 필요가 없습니다. 당연히 Python 방식의 데코레이터를 사용하는 것이 좋습니다. 일단 코드로 이동하면됩니다. 이하.

import time


def timer(func):
    def call_func(*args, **kwargs):
        print("计时开始")
        start_time = time.time()
        func(*args, **kwargs)
        end_time = time.time()
        total_time = end_time - start_time
        print("计时结束")
        print(f"程序用时{int(total_time // 60)}分{total_time % 60:.2f}秒")
    return call_func


if __name__ == '__main__':
    @timer
    def test(second):  # 测试函数
        time.sleep(second)

    test(3.4)

다음은 실행 결과이다.
가동 결과
우리는 먼저 일반적인 장식을 구현하고 이전과 FUNC 기능 후 내장 된 시간 모듈 타이밍 통계를 구현하고 파이썬 3.6에 의해 도입 된 문자열 F 새로운 기능을 사용하여 ( 슈퍼, 직관적 빠르고 추천 , 및 단순 ) 결과를 인쇄하십시오.
특정 프로그램 또는 코드 블록 (위의 테스트 함수 등)의 실행 시간을 계산해야 할 때 방금 작성한 @timer 데코레이터를 테스트 함수에 추가합니다.
물론이 모듈을 재사용해야합니다. 현재로서는 mytimer.py (위 코드 블록의 이름, 원하는대로 다른 것을 선택할 수 있음) 만 프로젝트에 복사하고 모듈을 가져 와서 사용하면됩니다. 타이밍을 사용해야하는 곳 데코레이터로 충분합니다. 다음은 구현의 예입니다.

# 导入计时器装饰器
from mytimer import timer


@timer # 给函数加装饰器
def spark_demo(usetime):
    """
    假设我们要统计运行spark中spark_demo的总时长
    """
    import time
    time.sleep(usetime)
    pass


if __name__ == '__main__':
    spark_demo(74.4)

작동 결과 :
여기에 사진 설명 삽입
타이머를 사용해야하는 곳에 @timer를 추가해야하는 한 간단하고 편안합니다! 이것이 pythoner가 머리카락이 많은 이유입니다! ! !

추천

출처blog.csdn.net/weixin_41897122/article/details/101555480