Profiling
Profiling sampelt die Ressourcennutzung eines Programms zur Laufzeit (CPU/Speicher/IO), lokalisiert Hot-Funktionen und Engpässe und leitet so die Optimierung.
Zweck
Leistungsengpässe anhand von Daten lokalisieren und Spekulation statt Messung vermeiden.
Mechanismus
CPU-Profil: sampelt Callstacks, um zeitintensive Funktionen zu finden. Heap-Profil: Speicherallokations-Hotspots. Flamegraphs visualisieren die Stackzeit. Node --prof, Python cProfile, Java JFR. Sampling in Produktion minimiert den Overhead.
Anwendungsfälle
- Leistungsoptimierung
- Engpassidentifikation
- Flamegraphs
Verwandte Begriffe
Flame Graph
Der Flamegraph visualisiert gesampelte Call-Stacks als Flammen: die Breite auf der x-Achse entspricht dem Zeitanteil eines Frames, die y-Achse der Aufruftiefe – Hotspots werden sichtbar. GLOSSAR
Just-In-Time Compilation
JIT kompiliert heißen Code zur Laufzeit in Maschinencode und vereint die Flexibilität eines Interpreters mit der Leistung eines Compilers. GLOSSAR