본문 바로가기
파이썬

파이썬 시간 모듈로 경과 시간 측정

by º기록 2020. 11. 7.
반응형

파이썬의 Time 모듈을 사용하면 경과 시간을 측정 할 수 있습니까? 그렇다면 어떻게해야합니까?

커서가 일정 기간 동안 위젯에 있으면 이벤트가 발생하도록 이렇게해야합니다.

 

해결 방법

 

start_time = time.time()
# your code
elapsed_time = time.time() - start_time

간단한 데코레이터를 작성하여 다양한 함수의 실행 시간 측정을 단순화 할 수도 있습니다.

import time
from functools import wraps

PROF_DATA = {}

def profile(fn):
    @wraps(fn)
    def with_profiling(*args, **kwargs):
        start_time = time.time()

        ret = fn(*args, **kwargs)

        elapsed_time = time.time() - start_time

        if fn.__name__ not in PROF_DATA:
            PROF_DATA[fn.__name__] = [0, []]
        PROF_DATA[fn.__name__][0] += 1
        PROF_DATA[fn.__name__][1].append(elapsed_time)

        return ret

    return with_profiling

def print_prof_data():
    for fname, data in PROF_DATA.items():
        max_time = max(data[1])
        avg_time = sum(data[1]) / len(data[1])
        print "Function %s called %d times. " % (fname, data[0]),
        print 'Execution time max: %.3f, average: %.3f' % (max_time, avg_time)

def clear_prof_data():
    global PROF_DATA
    PROF_DATA = {}

용법:

@profile
def your_function(...):
    ...

둘 이상의 기능을 동시에 프로파일 링 할 수 있습니다. 그런 다음 측정 값을 인쇄하려면 print_prof_data ()를 호출하십시오.

 

참조 페이지 https://stackoverflow.com/questions/3620943

 

 

반응형

댓글