- Ein hochleistungsfähiger CPU-, GPU- und Speicher-Profiler für Python, der viele Dinge kann, die andere Python-Profiler nicht tun oder nicht leisten können
- Läuft deutlich schneller und liefert gleichzeitig wesentlich detailliertere Informationen; außerdem der erste Profiler mit integrierten KI-basierten Optimierungsvorschlägen
- Bietet CLI und webbasierte GUI
- Schnell und präzise
- Schnell: Verwendet Sampling, statt sich auf Instrumentierung oder die Tracing-Funktion von Python zu verlassen. Der Overhead liegt normalerweise nicht über 10–20 % und oft sogar darunter
- Präzise: Genauigkeitstests haben gezeigt, dass Scalene zu den präzisesten Profilern gehört und die Laufzeit exakt misst
- Führt Profiling auf Zeilenebene und pro Funktion durch und zeigt damit sowohl die für die Laufzeit verantwortlichen Funktionen als auch die konkreten Codezeilen im Programm
- CPU-Profiling
- Misst die in Python-Code und nativem Code (einschließlich Bibliotheken) verbrachte Zeit getrennt, damit sich Entwickler auf den Code konzentrieren können, den sie tatsächlich optimieren können
- Hebt Hotspots, die einen erheblichen Anteil an CPU-Zeit oder Speicherallokationen beanspruchen, rot hervor
- Trennt Systemzeit separat aus, sodass sich I/O-Engpässe leicht finden lassen
- GPU-Profiling
- Meldet GPU-Zeit nur auf NVIDIA-basierten Systemen
- Speicher-Profiling
- Führt Profiling der Speichernutzung durch und identifiziert mithilfe eines speziellen Speicher-Allokators die konkreten Codezeilen, die für Speicherzuwachs verantwortlich sind
- Zeigt den Anteil des Speicherverbrauchs von Python-Code und nativem Code getrennt an
- Erstellt Speicherprofile pro Zeile
- Identifiziert Zeilen, in denen wahrscheinlich Memory Leaks auftreten
- Mit Kopiervolumen-Profiling lassen sich unbeabsichtigte Kopiervorgänge über die Python-/Bibliotheksgrenze hinweg leicht erkennen (z. B. wenn
numpy-Arrays versehentlich in Python-Arrays umgewandelt werden)
- Weitere Funktionen
- Mit der Option
--reduced-profile lässt sich ein reduziertes Profil erzeugen, das nur Zeilen meldet, die mehr als 1 % der CPU verbrauchen oder mindestens 100 Allokationen ausführen
- Unterstützt den Decorator
@profile, sodass sich nur bestimmte Funktionen profilieren lassen
- Kann das Profiling von im Hintergrund laufenden Programmen (gestartet mit
&) pausieren und fortsetzen
2 Kommentare
Im Vergleich zu Nsight wirkt es leichter und nützlicher einsetzbar; ich werde es ausprobieren und eine Rezension hinterlassen! Danke für die Vorstellung.
Wenn Sie mir dabei helfen würden, wäre ich Ihnen dankbar. Manchmal, wenn ich solche Nachrichten poste, frage ich mich, wie viele Leute sie tatsächlich lesen. Haha