developer tip

Python 용 시각적 프로파일 러가 있습니까?

copycodes 2020. 9. 1. 07:38
반응형

Python 용 시각적 프로파일 러가 있습니까? [닫은]


나는 지금 cProfile을 사용 하지만 통계 데이터를 쿼리하기 위해 pstats 코드를 작성하는 것이 지루하다는 것을 알았습니다.

CPU 시간과 메모리 할당 측면에서 Python 코드가 수행하는 작업을 보여주는 시각적 도구를 찾고 있습니다.

Java 세계의 몇 가지 예는 visualvmJProfiler 입니다.

  • 이와 같은 것이 존재합니까?
  • 이를 수행하는 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

http://pytools.codeplex.com/


이 사람은 여기 에 설명 된 그래픽 프로필을 만들었습니다 . 아마도 그것을 자신의 작업의 시작점으로 사용할 수 있습니다.


Snakeviz를 사용해보십시오. 설치가 매우 쉽고 (pip를 통해) 브라우저 기반입니다.

https://jiffyclub.github.io/snakeviz/


KCacheGrind에는 Mac OS XWindows에서 실행되는 QCacheGrind라는 버전이 포함되어 있습니다 .


Python Call Graphmaxy의 답변 과 매우 유사한 사진을 생성 합니다. 또한 각 기능에 대한 총 시간을 보여 주며, 어떤 이유로 예제 그래프에 반영되지 않았습니다.


저는 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

반응형