Saya menggunakan cProfile sekarang tetapi saya merasa membosankan untuk menulis kode pstats hanya untuk menanyakan data statistik.
Saya mencari alat visual yang menunjukkan kepada saya apa yang dilakukan kode Python saya dalam hal waktu CPU dan alokasi memori.
Beberapa contoh dari dunia Java adalah visualvm dan JProfiler .
- Apakah ada yang seperti ini?
- Apakah ada IDE yang melakukan ini?
- Akankah dtrace membantu?
Saya tahu tentang KCachegrind untuk Linux, tetapi saya lebih suka sesuatu yang dapat saya jalankan di Windows / Mac tanpa menginstal KDE.
python
user-interface
profiling
profiler
Frederik
sumber
sumber
Jawaban:
Seorang teman dan saya telah menulis penampil profil Python bernama SnakeViz yang berjalan di browser web. Jika Anda sudah berhasil menggunakan RunSnakeRun SnakeViz mungkin tidak menambahkan nilai sebanyak itu, tetapi SnakeViz jauh lebih mudah untuk dipasang.
Sunting: SnakeViz mendukung Python 2 dan 3 dan bekerja pada semua sistem utama.
sumber
Saya hanya mengetahui RunSnakeRun .
Ada juga beberapa pembicaraan beberapa waktu lalu tentang profiler terintegrasi di PyDev (Eclipse), tetapi saya tidak tahu apakah itu akan pernah terjadi.
Pembaruan: Sayangnya tampaknya RunSnakeRun tidak lagi dipertahankan, dan tidak mendukung Python 3.
sumber
Saya menggunakan gprof2dot.py. Hasilnya terlihat seperti ini . Saya menggunakan perintah itu:
Anda perlu memasang graphviz dan gprof2dot.py . Anda mungkin menyukai skrip shell praktis .
sumber
Spyder juga menyediakan antarmuka yang cukup bagus untuk cProfile:
sumber
Alat Python untuk Visual Studio berisi profiler grafis yang dilakukan dengan sangat baik: http://www.youtube.com/watch?v=VCx7rlPyEzE&hd=1
http://pytools.codeplex.com/
sumber
Orang ini membuat profil grafis, yang dijelaskan di sini . Mungkin Anda bisa menggunakannya sebagai titik awal untuk pekerjaan Anda sendiri.
sumber
KCacheGrind menyertakan versi yang disebut QCacheGrind yang berjalan di Mac OS X dan Windows .
sumber
apt-get install kcachegrind
menginstal 3 pustaka yang berhubungan dengan KDE.apt install kcachegrind
ingin menginstal 102 paket, termasuk ~ 40 perpustakaan KDE.ubuntu:xenial
mungkin tiga kali lebih banyak, tapi ini untuk lingkungan pengembangan dan saya hampir tidak melihatnya sebagai masalah. Dan sebenarnyaapt-cache depends --recurse --no-recommends --no-suggests --no-conflicts --no-breaks --no-replaces --no-enhances --no-pre-depends kcachegrind | grep kde | grep Depends | sort -u | wc -l
mengatakan hanya 13.Cobalah Snakeviz. Sangat mudah untuk menginstal (melalui pip) dan berbasis browser.
https://jiffyclub.github.io/snakeviz/
sumber
Grafik Panggilan Python menghasilkan gambar yang sangat mirip dengan yang ada di jawaban maxy . Ini juga menunjukkan waktu total untuk setiap fungsi, karena alasan tertentu itu tidak tercermin dalam grafik contoh.
sumber
Saya telah menulis alat visualisasi berbasis browser, profile_eye , yang beroperasi pada keluaran gprof2dot .
gprof2dot sangat bagus dalam mengumpulkan banyak keluaran alat profil, dan melakukan pekerjaan yang baik pada penempatan elemen grafik. Rendering terakhir adalah grafik statis, yang seringkali sangat berantakan.
Menggunakan d3.js dimungkinkan untuk menghilangkan banyak kekacauan itu, melalui pemudaran relatif dari elemen yang tidak fokus, tooltips, dan distorsi fisheye .
Sebagai perbandingan, lihat visualisasi profile_eye dari contoh kanonis yang digunakan oleh gprof2dot . Untuk Python khususnya, lihat contoh keluaran cProfile .
sumber
Pertimbangkan pyflame + flamegraph
Pyflame: Profiler Ptracing Untuk Python + flamegraph
https://github.com/uber/pyflame
Anda dapat melacak proses python yang sedang berjalan menggunakan pyflame.
sumber
Saya telah menggunakan celepuk dan ternyata sangat ringan. Memberi wawasan singkat tentang kinerja.
sumber