11 Punkte von xguru 2024-10-24 | 2 Kommentare | Auf WhatsApp teilen
  • 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

 
lethee 2024-10-29

Im Vergleich zu Nsight wirkt es leichter und nützlicher einsetzbar; ich werde es ausprobieren und eine Rezension hinterlassen! Danke für die Vorstellung.

 
xguru 2024-10-30

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