Node.js bietet leistungsstarke Werkzeuge zur Messung und Optimierung der Leistung Ihrer Anwendungen. Ein solches Werkzeug ist die Performance API, mit der Entwickler hochauflösende Zeitstempel und verschiedene Leistungskennzahlen erfassen können. Dieser Leitfaden führt Sie in die Schlüsselkomponenten der Node.js Performance API ein und zeigt Ihnen, wie Sie diese effektiv einsetzen können.
Warum Leistung in Node.js wichtig ist
Node.js glänzt in seiner ereignisgesteuerten, asynchronen Architektur, die sich perfekt für E/A-gebundene Aufgaben eignet. Aber selbst in dieser nicht-blockierenden Umgebung ist die Leistung von größter Bedeutung. Langsame Anwendungen führen zu frustrierten Benutzern und behindern die Skalierbarkeit. Die Identifizierung von Engpässen und die Optimierung des Codes sind unerlässlich für ein nahtloses Benutzererlebnis.
Interessiert daran, Ihre API-Antwortzeit zu erhöhen? Der folgende Artikel bietet eine Schritt-für-Schritt-Anleitung, wie Sie Ihre API-Antwortzeit erhöhen können.

Warum die Node.js Performance API verwenden?
- Identifizieren von Leistungsengpässen: Leistungsengpässe können das Benutzererlebnis erheblich beeinträchtigen. Mit der Performance API können Entwickler genau die Momente ermitteln, in denen es zu Verzögerungen kommt, sei es bei der Ausführung von Funktionen, beim Laden von Ressourcen oder bei der Verarbeitung von HTTP-Anfragen. Diese Präzision ermöglicht gezielte Optimierungen.
- Optimierung der Ressourcenauslastung: Die Überwachung der Leistung hilft zu verstehen, wie Ressourcen wie CPU und Speicher genutzt werden. Durch die Identifizierung ineffizienter Ressourcenauslastung können Entwickler ihren Code optimieren, um ihn effizienter zu gestalten, Kosten zu senken und die Skalierbarkeit zu verbessern.
- Verbesserung des Benutzererlebnisses: Anwendungen, die schnell reagieren, bieten ein besseres Benutzererlebnis. Die Performance API hilft bei der Messung wichtiger Kennzahlen wie Time to First Byte (TTFB) und First Contentful Paint (FCP), sodass Entwickler Verbesserungen vornehmen können, die zu schnelleren Ladezeiten und reibungsloseren Interaktionen führen.
- Verbesserung der Anwendungsstabilität: Die kontinuierliche Leistungsüberwachung hilft bei der Erkennung von Anomalien und potenziellen Problemen, bevor sie kritisch werden. Dieser proaktive Ansatz gewährleistet eine höhere Betriebszeit und Zuverlässigkeit der Anwendung.
Einführung in die Node.js Performance API
Die Performance API, die über das Modul perf_hooks
zugänglich ist, stattet Node.js-Entwickler mit einem umfassenden Toolkit zur Messung und Analyse der Anwendungsleistung aus. Sie bietet einen erheblichen Vorteil gegenüber herkömmlichen Methoden wie Date.now()
und bietet hochauflösendes Timing und einen strukturierteren Ansatz zur Leistungsbewertung. In der Date.now()
-Methode sehen Sie so etwas wie;
const startTime = Date.now();
// call a function to perform a task()
console.log(`Task duration: ${Date.now() - startTime} milliseconds`);
Die Date.now()-Funktion funktioniert gut, aber auch wenn sie scheinbar unkompliziert ist, kann diese Methode unzuverlässig sein, da Änderungen der Systemuhr die Messungen verfälschen können.
Hier kommt die Node.js Performance API ins Spiel. Wir wollen in der Lage sein, die Zeit, die unsere Anwendung verbraucht, vollständig zu messen und uns nicht mit Dingen wie der Systemuhr herumschlagen zu müssen, oder?
Die Node.js Performance API basiert auf mehreren Kernmethoden und -klassen, die vom Modul perf_hooks
bereitgestellt werden. Dazu gehören:
Jedes dieser Werkzeuge dient einem bestimmten Zweck bei der Erfassung und Analyse von Leistungskennzahlen.
Verwendung von performance.now()
Die Methode performance.now()
gibt einen hochauflösenden Zeitstempel in Millisekunden zurück. Dies ist nützlich, um Intervalle innerhalb Ihrer Anwendung mit größerer Präzision als Date.now()
zu messen.
Um die Dauer einer Aufgabe zu ermitteln, fügen Sie die Methode performance.now() am Anfang und am Ende des Vorgangs hinzu, den Sie messen möchten, wie folgt;
const { performance } = require('node:perf_hooks');
const start = performance.now();
// Perform some operations
const end = performance.now();
console.log(`Time taken: ${end - start} ms`);
Zunächst importieren wir die Performance aus den Node-Modulen und erstellen dann Start- und Endkonstanten und weisen ihnen die performance.now-Methoden zu, um die genaue Zeit des Vorgangs zu erhalten.
Die Ausgabe des obigen Codes sollte wie folgt aussehen;
Time taken: 1253.**** ms.
Verwendung von performance.mark()
Mit der Methode performance.mark()
in Node.js können Sie benannte Zeitstempel (oder Markierungen) an bestimmten Stellen in Ihrem Code erstellen. Diese Markierungen helfen Ihnen, die Zeit zu messen, die zwischen verschiedenen Teilen Ihrer Anwendung benötigt wird, und geben Ihnen Einblicke in Leistungsengpässe.
const { performance } = require('node:perf_hooks');
performance.mark('A');
// Some operations
performance.mark('B');
In diesem Beispiel erstellen performance.mark('A') und performance.mark('B') zwei Markierungen mit den Bezeichnungen 'A' bzw. 'B'.
Markierungen können auch zusätzliche Details enthalten, die für das Debuggen oder die weitere Analyse nützlich sein können.performance.mark('A', { detail: 'Start of operation' }); performance.mark('B', { detail: 'End of operation' });
Hier liefert die Eigenschaft detail
zusätzliche Informationen darüber, was jede Markierung darstellt.
Sobald Sie Markierungen erstellt haben, können Sie die Dauer zwischen ihnen mit performance.measure()
messen.
Verwendung von performance.measure()
performance.measure()
ist eine Funktion innerhalb der Performance API von Node.js, die speziell die Dauer zwischen zwei markierten Punkten in der Ausführungszeitachse Ihrer Anwendung berechnet. Sie erstellt im Wesentlichen einen Messungseintrag und speichert die verstrichene Zeit für die spätere Abfrage und Analyse.
Denken Sie daran, dass wir im Abschnitt performance.mark()
zwei Markierungen erstellt haben: A
& B
. In diesem Abschnitt werden wir sie testen und sehen, wie performance.mark()
mit performance.measure()
funktioniert.
performance.measure('A to B', 'A', 'B');
const measures = performance.getEntriesByType('measure');
measures.forEach(measure => {
console.log(`${measure.name}: ${measure.duration}ms`);
});
Dadurch wird eine Messung mit dem Namen 'A to B' erstellt, die die Zeit zwischen den Markierungen 'A' und 'B' berechnet.
Wenn Sie den obigen Code ausführen, zeigt die Ausgabe die Dauer zwischen den beiden Markierungen 'A' und 'B' an. Hier ist ein Beispiel dafür, was die Konsole ausgeben könnte:
A to B: 12.345ms
Diese Ausgabe zeigt an, dass die Vorgänge zwischen den Markierungen 'A' und 'B' etwa 12,345 Millisekunden gedauert haben.
Verwendung von PerformanceObserver
Mit der Schnittstelle PerformanceObserver
in Node.js können Entwickler Leistungseinträge wie Markierungen, Messungen und Ressourcentiming-Einträge asynchron beobachten und verarbeiten. Sie ist besonders nützlich für die Überwachung und Reaktion auf Leistungsdaten, sobald diese erfasst werden, und ist damit ein wesentliches Werkzeug für die Echtzeit-Leistungsanalyse und -Optimierung.
Um PerformanceObserver
zu verwenden, müssen Sie eine Instanz davon erstellen und eine Callback-Funktion definieren, die die Leistungseinträge verarbeitet. Hier ist ein grundlegendes Setup:
const { PerformanceObserver, performance } = require('node:perf_hooks');
const observer = new PerformanceObserver((list) => {
list.getEntries().forEach((entry) => {
console.log(entry);
});
});
observer.observe({ entryTypes: ['mark', 'measure'] });
In diesem Beispiel:
- Importieren von
PerformanceObserver
undperformance
: Die ObjektePerformanceObserver
undperformance
werden aus dem Modulperf_hooks
importiert. - Erstellen eines Observers: Eine Instanz von
PerformanceObserver
wird mit einer Callback-Funktion erstellt. Diese Funktion wird aufgerufen, wenn neue Leistungseinträge aufgezeichnet werden. - Beobachten von Eintragstypen: Die Methode
observer.observe
wird mit einem Objekt aufgerufen, das die Typen der zu beobachtenden Einträge angibt (in diesem Fallmark
undmeasure
).
Praktische Anwendungsfälle für PerformanceObserver
1. Echtzeit-Leistungsüberwachung:
PerformanceObserver
ermöglicht es Ihnen, die Anwendungsleistung kontinuierlich zu überwachen und sofortiges Feedback zu Leistungsproblemen zu geben. Dies ist besonders nützlich in Produktionsumgebungen, in denen Echtzeit-Leistungsdaten von entscheidender Bedeutung sind.
2. Analyse des Ressourcenladens:
- Durch die Beobachtung von Ressourcentiming-Einträgen können Entwickler analysieren, wie verschiedene Ressourcen (wie Skripte, Stylesheets und Bilder) geladen werden, was zur Optimierung der Ladezeiten beiträgt.
3. Debugging und Profiling:
- Während der Entwicklung kann
PerformanceObserver
verwendet werden, um bestimmte Teile des Codes zu profilieren und langsame Funktionen und potenzielle Engpässe zu identifizieren.
4. Benutzerdefinierte Leistungskennzahlen:
- Entwickler können benutzerdefinierte Leistungskennzahlen erstellen, indem sie wichtige Punkte in der Anwendung markieren und messen, was eine detailliertere Leistungsanalyse ermöglicht, die auf die spezifischen Bedürfnisse der Anwendung zugeschnitten ist.
Anwendungstests in Node.js
Bisher haben wir die Node.js Performance API kennengelernt, warum sie wichtig ist, wie sie funktioniert und wie sie sich von der Standardfunktion Date.now()
unterscheidet.
Wenn Sie jedoch eine Anwendung erstellen, sollten Sie sich auf den Aufbau Ihrer Anwendung konzentrieren und das Testen anderen Diensten überlassen. Nun, dank Apidog können Sie Ihre APIs und Anwendungen testen.

Apidog ist ein leistungsstarkes Werkzeug, das speziell für API-Tests, einschließlich Leistungstests, entwickelt wurde. Es bietet umfassende Lösungen für das Erstellen, Verwalten und Testen von APIs. Mit Apidog können Sie API-Verhalten simulieren, Testfälle definieren und detaillierte Berichte erstellen. Mit seiner intuitiven Benutzeroberfläche können Sie ganz einfach Leistungstests konfigurieren, Antwortzeiten analysieren und Leistungsengpässe identifizieren.

Fazit
Die Node.js Performance API, einschließlich Tools wie performance.mark()
, performance.measure()
und PerformanceObserver
, bietet Entwicklern leistungsstarke Möglichkeiten zur Überwachung und Optimierung der Anwendungsleistung. Durch die Nutzung dieser Tools können Sie präzise Einblicke in die Leistungsmerkmale Ihrer Node.js-Anwendungen gewinnen, Engpässe identifizieren und gezielte Optimierungen implementieren, um die Effizienz und das Benutzererlebnis zu verbessern.
Über die Performance API hinaus kann der Einsatz von Best APIs/Application Practices sowie robuste Lasttests und -überwachung die Gesamtleistung Ihrer Anwendungen erheblich steigern. Diese kombinierten Bemühungen stellen sicher, dass Ihre Node.js-Anwendungen reibungslos laufen, effektiv skalieren und ein hervorragendes Benutzererlebnis bieten, wodurch ein Wettbewerbsvorteil im Markt erhalten bleibt.