0 Tage Serie
javascript / expert
Snippet

Performance-Profiling mit timerify

Die Funktion 'performance.timerify' umschließt eine Funktion, um deren Ausführungszeit automatisch zu messen und einen Performance-Eintrag zu erstellen. In Kombination mit PerformanceObserver ermöglicht dies ein nicht-intrusives Monitoring kritischer Pfade, ohne manuell Zeitstempel in der Logik verteilen zu müssen.

snippet.js
javascript
1
2
3
4
5
6
7
8
9
10
11
12
import { performance, PerformanceObserver } from 'node:perf_hooks';
const obs = new PerformanceObserver((list) => {
const entries = list.getEntries();
entries.forEach(e => console.log(`${e.name}: ${e.duration.toFixed(4)}ms`));
});
obs.observe({ entryTypes: ['function'] });
const heavyTask = () => { for(let i=0; i<1e6; i++); };
const profiledTask = performance.timerify(heavyTask);
profiledTask();
nodejs
Erklärung
1
obs.observe({ entryTypes: ['function'] });
Weist den Observer an, speziell auf timerified Funktions-Einträge zu hören.
2
performance.timerify(heavyTask);
Gibt eine neue Funktion zurück, die bei Ausführung Performance-Markierungen auslöst.