많은 수업이 있습니다. 그들 중 일부는 초기화가 느리고, cached properties을 사용하여 초기화 중 일부를 지연시키고 싶습니다. 첫 번째 단계는 범인을 식별하는 것입니다. 그래서 나는 다음과 같은 코드를 시간이 원하는 :타이밍 클래스 초기화에 대한 아이디어
class MyClass:
def __init__(self, ....):
# start measurement
...
# end measurement, report
내 요구 사항은 다음과 같습니다 로그 항목으로
- 타이밍 결과. 나는 내 코드에 보관하지만, 플래그를 해제 할 수 있도록하려면
- 가능한
- 적은 침입
그래서 내 첫번째 생각은 일반적인 timeme
기능을 구현하는 것입니다 :
(시간 함수의 종류뿐만 아니라 클래스 메소드를 사용할 수있는) 그리고 지금 내가 할 수있는
def timeme(func):
def f(*args, **kwargs):
start = # get start timestamp
result = func(*args, **kwargs)
end = # get end timestamp
# report timespan
return result
return f
:
class MyClass:
@timeme
def __init__(self, ....):
...
더 많은 것이 있습니까 pythonic 방법? 이것에 대한 몇 가지 표준 라이브러리 지원은 무엇입니까? 공구 지원? 이 접근법의 명백한 단점은 무엇입니까?
하나의 단어가 마음에 온다 : // 프로파일 //. – MrGumble
물론, 특정 분야에 집중하고 싶습니다. 완전하고 복잡한 프로파일 러 보고서는 필요 없습니다. 그리고 이것이 코드라면, 필자는 실생활 활동을하는 로그에서 프로파일 러를 사용하여 유스 케이스를 재현하는 것이 아니라, 실용적으로 사용할 수있게 할 수 있습니다. – dangonfast