Python 용 시각적 프로파일 러가 있습니까? [닫은]
나는 지금 cProfile을 사용 하지만 통계 데이터를 쿼리하기 위해 pstats 코드를 작성하는 것이 지루하다는 것을 알았습니다.
CPU 시간과 메모리 할당 측면에서 Python 코드가 수행하는 작업을 보여주는 시각적 도구를 찾고 있습니다.
Java 세계의 몇 가지 예는 visualvm 및 JProfiler 입니다.
- 이와 같은 것이 존재합니까?
- 이를 수행하는 IDE가 있습니까?
- 겠습니까 DTrace에 도움을?
Linux 용 KCachegrind 에 대해 알고 있지만 KDE를 설치하지 않고도 Windows / Mac에서 실행할 수있는 것을 선호합니다.
친구와 저는 웹 브라우저에서 실행되는 SnakeViz 라는 Python 프로필 뷰어를 작성했습니다 . 이미 RunSnakeRun을 성공적으로 사용하고 있다면 SnakeViz는 그다지 많은 가치를 추가하지 못할 수도 있지만 SnakeViz는 설치하기가 훨씬 쉽습니다.
편집 : SnakeViz는 Python 2 및 3을 지원하며 모든 주요 시스템에서 작동합니다.
나는 RunSnakeRun 만 알고 있습니다.
얼마 전에 PyDev (Eclipse)의 통합 프로파일 러에 대한 이야기도 있었지만 그것이 빛을 볼 수 있을지 모르겠습니다.
업데이트 : 불행히도 RunSnakeRun은 더 이상 유지 관리되지 않으며 Python 3을 지원하지 않는 것 같습니다.
gprof2dot.py를 사용합니다. 결과는 다음 과 같습니다 . 다음 명령을 사용합니다.
python -m cProfile -o profile.dat my_program.py
gprof2dot.py -f pstats profile.dat | dot -Tpng -o profile.png
당신은 필요 graphviz를 하고 gprof2dot.py가 설치되어 있어야합니다. 편리한 쉘 스크립트를 원할 수도 있습니다 .
Spyder 는 또한 cProfile에 대한 매우 멋진 GUI를 제공합니다.
Visual Studio 용 Python 도구에는 매우 잘 만들어진 그래픽 프로파일 러가 포함되어 있습니다. http://www.youtube.com/watch?v=VCx7rlPyEzE&hd=1
이 사람은 여기 에 설명 된 그래픽 프로필을 만들었습니다 . 아마도 그것을 자신의 작업의 시작점으로 사용할 수 있습니다.
Snakeviz를 사용해보십시오. 설치가 매우 쉽고 (pip를 통해) 브라우저 기반입니다.
https://jiffyclub.github.io/snakeviz/
KCacheGrind에는 Mac OS X 및 Windows에서 실행되는 QCacheGrind라는 버전이 포함되어 있습니다 .
Python Call Graph 는 maxy의 답변 과 매우 유사한 사진을 생성 합니다. 또한 각 기능에 대한 총 시간을 보여 주며, 어떤 이유로 예제 그래프에 반영되지 않았습니다.
저는 gprof2dot 의 출력에서 작동 하는 브라우저 기반 시각화 도구 인 profile_eye 를 작성했습니다 .
gprof2dot는 많은 프로파일 링 도구 출력을 처리하는 데 탁월하고 그래프 요소 배치에서 훌륭한 작업을 수행합니다. 최종 렌더링은 종종 매우 어수선한 정적 그래픽입니다.
d3.js를 사용하면 초점이 맞지 않은 요소의 상대적 페이딩, 툴팁 및 어안 왜곡을 통해 이러한 혼란을 제거 할 수 있습니다 .
비교를 위해 gprof2dot에서 사용 하는 표준 예제 의 profile_eye 시각화 를 참조하십시오 . 특히 Python의 경우 cProfile 출력 예제를 참조하십시오 .
pyflame + Flamegraph 고려
Pyflame : Python + Flamegraph 용 Ptracing Profiler
https://github.com/uber/pyflame
pyflame을 사용하여 실행중인 Python 프로세스를 추적 할 수 있습니다.
나는 플롭 을 사용 했고 그것이 매우 가볍다는 것을 알았습니다. 성능에 대한 빠른 통찰력을 제공합니다.
참고 URL : https://stackoverflow.com/questions/3378953/is-there-a-visual-profiler-for-python
'developer tip' 카테고리의 다른 글
pySerial 패키지 사용의 전체 예제 (0) | 2020.09.01 |
---|---|
jQuery를 사용한 원형 차트 (0) | 2020.09.01 |
Java unchecked : varargs 매개 변수에 대해 확인되지 않은 일반 배열 생성 (0) | 2020.09.01 |
JavaScript, null / undefined [duplicate]에 대한 중첩 된 개체 속성을 확인하는 우아한 방법 (0) | 2020.09.01 |
Erlang의 99.9999999 % (나인 나인) 신뢰성 (0) | 2020.09.01 |