Eine Einführung in die Node.js Performance API

Node.js bietet Tools zur Leistungsmessung & -optimierung. Die Performance API erfasst Zeitstempel & Metriken. Mehr dazu!

Leo Schulz

Leo Schulz

5 June 2025

Eine Einführung in die Node.js Performance API

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?

  1. 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.
  2. 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.
  3. 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.
  4. 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:

  1. performance.now(),
  2. performance.mark(),
  3. performance.measure() und die
  4. PerformanceObserver.

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:

  1. Importieren von PerformanceObserver und performance: Die Objekte PerformanceObserver und performance werden aus dem Modul perf_hooks importiert.
  2. Erstellen eines Observers: Eine Instanz von PerformanceObserver wird mit einer Callback-Funktion erstellt. Diese Funktion wird aufgerufen, wenn neue Leistungseinträge aufgezeichnet werden.
  3. Beobachten von Eintragstypen: Die Methode observer.observe wird mit einem Objekt aufgerufen, das die Typen der zu beobachtenden Einträge angibt (in diesem Fall mark und measure).

Praktische Anwendungsfälle für PerformanceObserver

1. Echtzeit-Leistungsüberwachung:

2. Analyse des Ressourcenladens:

3. Debugging und Profiling:

4. Benutzerdefinierte Leistungskennzahlen:

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.

API performance testing by Apidog

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.

button

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.

Explore more

So verwenden Sie Deepseek R1 lokal mit Cursor

So verwenden Sie Deepseek R1 lokal mit Cursor

Erfahre, wie du DeepSeek R1 lokal mit Cursor IDE einrichtest & konfigurierst – privates, kostengünstiges KI-Coding.

4 June 2025

Wie man Gemma 3n auf Android ausführt?

Wie man Gemma 3n auf Android ausführt?

Erfahre, wie du Gemma 3n auf Android installierst und ausführst, mit Google AI Edge Gallery.

3 June 2025

So verwenden Sie den Google Search Console MCP-Server

So verwenden Sie den Google Search Console MCP-Server

Google Search Console & Apidog: SEO-Analyse & KI-API-Entwicklung. Installation, Konfiguration & Nutzung für Web-Performance & API-Einblicke.

30 May 2025

Praktizieren Sie API Design-First in Apidog

Entdecken Sie eine einfachere Möglichkeit, APIs zu erstellen und zu nutzen