테스트 스위트가 있으며 코드가 테스트 중입니다. 적절한 파일의 상단에 from memory_profiler import profile
을 넣고 프로파일 링하고자하는 기능을 @profile
으로 꾸며서 python TestThing.py
이라는 표준 방식으로 실행하면 큰 행별로 결과가 나옵니다.어떻게 Python에서 unittests를 시간 프로파일 링 할 수 있습니까?
하지만 line_profiler는 이런 식으로 패키지에 포함되어 있지 않으며, 프로필을 작성할 수있는 유일한 방법은 kernprof -l -v thing.py
입니다. 단위 테스트에서이 테스트를 사용하면 아무런 테스트도 실행되지 않고 (놀랄만한 일이 아닙니다.) 결과가 생성되지 않습니다. memory_profiler와 비슷한 방식으로 테스트와 코드를 시간 프로파일 링하는 방법은 무엇입니까? 물론
: 수입 line_profiler를, 다음 클래스의 정적 프로파일 = line_profiler.LineProfiler을 선언합니다. 그런 다음 @profiler를 사용하여 함수를 꾸미십시오. 그런 다음 해당 함수의 끝에서 ClassName.profiler.dump_stats ('method.lprof')를 호출하십시오. 그런 다음 python -m line_profiler method.lprof로 읽으십시오. 하지만이 구피 아닌가요? 나중에 제거해야 할 많은 코드를 코드에 추가하고 싶지 않습니다. 더 깨끗한 방법이 있습니까? – pvlkmrv
어떤 부분이 깨끗하지 않습니까? – georgexsh
memory_profiler의 경우 객체를 인스턴스화하거나 프로파일 링 된 함수가 실행 된 후 dump_stats 메소드를 호출하는 것에 대해 걱정할 필요가 없습니다. 이 시간 프로파일 링 방법으로 작업 할 수 있지만 필요 이상의 작업입니다. – pvlkmrv