


10 Tipps zur Optimierung der Geschwindigkeit Ihrer Node.js-Webanwendung_node.js
Node.js ist dank seiner ereignisgesteuerten und asynchronen Natur bereits schnell. Allerdings reicht es in modernen Netzwerken nicht aus, nur schnell zu sein. Wenn Sie Node.js zum Entwickeln Ihrer nächsten Webanwendung verwenden möchten, sollten Sie alles tun, um Ihre Anwendung schneller und rasend schnell zu machen. In diesem Artikel werden 10 getestete Tipps vorgestellt, die Node-Anwendungen erheblich verbessern können. Schauen wir sie uns ohne weitere Umschweife einzeln an.
1. Parallel
Beim Erstellen einer Webanwendung müssen Sie möglicherweise die interne API mehrmals aufrufen, um verschiedene Daten zu erhalten. Angenommen, Sie möchten auf der Dashboard-Seite die folgenden Aufrufe ausführen:
Benutzerinformationen -getUserProfile().
Aktuelle Aktivität -getRecentActivity().
Abonnementinhalt -getSubscriptions().
Benachrichtigungsinhalt -getNotifications().
Um diese Informationen zu erhalten, würden Sie für jede Methode eine separate Middleware erstellen und diese dann mit der Dashboard-Route verknüpfen. Das Problem besteht jedoch darin, dass die Ausführung dieser Methoden linear ist und die nächste erst beginnt, wenn die vorherige endet. Eine mögliche Lösung besteht darin, sie parallel aufzurufen.
Wie Sie wissen, ist Node.js aufgrund der Asynchronität sehr gut darin, mehrere Methoden parallel aufzurufen. Wir dürfen unsere Ressourcen nicht verschwenden. Die oben erwähnten Methoden haben keine Abhängigkeiten, sodass wir sie parallel ausführen können. Auf diese Weise können wir die Menge an Middleware reduzieren und die Geschwindigkeit deutlich erhöhen.
Wir können async.js verwenden, um Parallelität zu handhaben. Hierbei handelt es sich um ein Node-Modul, das speziell zur asynchronen Optimierung von JavaScript verwendet wird. Der folgende Code zeigt, wie Sie mit async.js mehrere Methoden parallel aufrufen:
Funktion runInParallel() {
async.parallel([
GetUserProfile,
GetRecentActivity,
Holen Sie sich Abonnements,
GetNotifications
], function(err, results) {
//Dieser Rückruf wird ausgeführt, wenn alle Funktionen abgeschlossen sind
});
}
Wenn Sie mehr über async.js erfahren möchten, besuchen Sie bitte dessen GitHub-Seite.
2. Asynchron
Node.js ist von Natur aus Single-Threaded. Auf dieser Grundlage kann synchroner Code die gesamte Anwendung verstopfen. Beispielsweise haben die meisten Dateisystem-APIs ihre synchronen Versionen. Der folgende Code demonstriert sowohl synchrone als auch asynchrone Vorgänge beim Lesen von Dateien:
// Asynchron
fs.readFile('file.txt', function(err, buffer) {
var content = buffer.toString();
});
// Synchron
var content = fs.readFileSync('file.txt').toString();
Wenn Sie jedoch langfristige Blockierungsvorgänge ausführen, wird der Hauptthread blockiert, bis diese Vorgänge abgeschlossen sind. Dadurch wird die Leistung Ihrer Anwendung erheblich beeinträchtigt. Daher ist es am besten, sicherzustellen, dass Sie die asynchrone Version der API in Ihrem Code verwenden. Zumindest sollten Sie im Leistungsknoten asynchron sein. Auch bei der Auswahl von Drittanbietermodulen sollten Sie vorsichtig sein. Denn wenn Sie versuchen, Synchronisierungsvorgänge aus Ihrem Code zu eliminieren, macht ein synchroner Aufruf aus einer externen Bibliothek alle Ihre Bemühungen zunichte und verringert die Leistung Ihrer Anwendung.
3. Caching
Wenn Sie Daten verwenden, die sich nicht häufig ändern, sollten Sie sie zwischenspeichern, um die Leistung zu verbessern. Der folgende Code ist beispielsweise ein Beispiel dafür, wie die neuesten Beiträge abgerufen und angezeigt werden:
var router = express.Router();
router.route('/latestPosts').get(function(req, res) {
Post.getLatest(function(err, posts) {
Wenn (irrt) {
throw err;
}
res.render('posts', { posts: posts });
});
});
Wenn Sie nicht oft posten, können Sie die Liste der Beiträge zwischenspeichern und sie nach einer gewissen Zeit löschen. Um diesen Zweck zu erreichen, können wir beispielsweise das Redis-Modul verwenden. Natürlich muss Redis auf Ihrem Server installiert sein. Anschließend können Sie einen Client namens node_redis verwenden, um Schlüssel/Wert-Paare zu speichern. Das folgende Beispiel zeigt, wie wir Beiträge zwischenspeichern:
var redis = require('redis'),
Client = redis.createClient(null, null, { discover_buffers: true }),
Router = express.Router();
router.route('/latestPosts').get(function(req,res){
client.get('posts', function (err, posts) {
Wenn (Beiträge) {
Geben Sie res.render('posts', { posts: JSON.parse(posts) });
zurück
}
Post.getLatest(function(err, posts) {
Wenn (irrt) {
throw err;
}
client.set('posts', JSON.stringify(posts));
res.render('posts', { posts: posts });
});
});
});
Sehen Sie, wir überprüfen zuerst den Redis-Cache, um zu sehen, ob ein Beitrag vorhanden ist. Wenn ja, erhalten wir die Liste der Beiträge aus dem Cache. Andernfalls rufen wir den Datenbankinhalt ab und speichern die Ergebnisse zwischen. Darüber hinaus können wir nach einer bestimmten Zeit den Redis-Cache leeren, damit der Inhalt aktualisiert werden kann.
4. gzip-Komprimierung
Das Aktivieren der GZIP-Komprimierung kann große Auswirkungen auf Ihre Webanwendung haben. Wenn ein gzip-komprimierter Browser eine Ressource anfordert, komprimiert der Server die Antwort, bevor er sie an den Browser zurückgibt. Wenn Sie Ihre statischen Ressourcen nicht gzipen, kann es länger dauern, bis der Browser sie abruft.
In Express-Anwendungen können wir die integrierte express.static()-Middleware verwenden, um statische Inhalte zu verarbeiten. Darüber hinaus können statische Inhalte mithilfe der Komprimierungs-Middleware komprimiert und verarbeitet werden. Das Folgende ist ein Anwendungsbeispiel:
var compress = require('compression');
app.use(compression()); //Komprimierung verwenden
app.use(express.static(path.join(__dirname, 'public')));
5. Verwenden Sie nach Möglichkeit clientseitiges Rendering
Heutzutage gibt es viele vielseitige und leistungsstarke clientseitige MVC/MVVM-Frameworks wie AngularJS, Ember, Meteor usw., die das Erstellen einer Single-Page-Anwendung sehr einfach machen. Im Grunde stellen Sie einfach eine API bereit und geben eine JSON-Antwort an den Client zurück, ohne die Seite auf der Serverseite zu rendern. Auf der Clientseite können Sie Frames verwenden, um JSON zu organisieren und auf der Benutzeroberfläche anzuzeigen. Wenn Sie nur JSON-Antworten auf dem Server senden, sparen Sie Bandbreite und verbessern die Leistung, da Sie nicht in jeder Antwort Layout-Markups zurückgeben müssen, oder? Sie müssen nur reines JSON zurückgeben und diese dann auf dem Client rendern.
Sehen Sie sich dieses Tutorial an, wie Sie RESTful-APIs mit Express 4 verfügbar machen. Ich habe auch ein weiteres Tutorial geschrieben, das zeigt, wie man diese APIs mit AngularJS kombiniert.
6. Speichern Sie nicht zu viele Daten in Sitzungen
In einer typischen Express-Seitenanwendung werden Sitzungsdaten standardmäßig im Speicher gespeichert. Wenn Sie zu viele Daten in der Sitzung speichern, erhöht sich der Serveraufwand erheblich. Entweder wechseln Sie zu einer anderen Speichermethode, um Sitzungsdaten zu speichern, oder Sie versuchen, die in der Sitzung gespeicherte Datenmenge zu reduzieren.
Wenn sich beispielsweise ein Benutzer bei Ihrer Anwendung anmeldet, können Sie statt des gesamten Benutzerdatenobjekts nur seine ID in der Sitzung speichern. Für Abfragen, bei denen Sie das Objekt anhand der ID abrufen können, möchten Sie möglicherweise MongoDB oder Redis zum Speichern der Sitzungsdaten verwenden.
7. Abfrage optimieren
Angenommen, Sie haben einen Blog und möchten die neuesten Beiträge auf der Startseite anzeigen. Sie können Daten über Mongoose wie folgt abrufen:
Post.find().limit(10).exec(function(err, posts) {
//Beiträge an den Kunden senden
});
Das Problem besteht jedoch darin, dass die find()-Methode von Mongoose alle Felder des Objekts abfragt und viele Felder auf der Homepage nicht erforderlich sind. Commentsis speichert beispielsweise Antworten auf einen bestimmten Beitrag. Da wir keine Artikelantworten anzeigen müssen, können wir sie bei der Abfrage ausschließen. Dies wird definitiv die Geschwindigkeit erhöhen. Sie können die obige Abfrage wie folgt optimieren:
Post.find().limit(10).exclude('comments').exec(function(err, posts) {
//Beiträge an den Kunden senden
});
8. Verwenden Sie die Standard-V8-Methode
Einige Vorgänge für Sammlungen, wie z. B. „map“, „reduce“ und „forEach“, werden möglicherweise nicht in allen Browsern unterstützt. Wir können einige Browserkompatibilitätsprobleme über die Front-End-Bibliothek lösen. Für Node.js müssen Sie jedoch genau wissen, welche Vorgänge die V8-JavaScript-Engine von Google unterstützt. Auf diese Weise können Sie diese integrierten Methoden direkt verwenden, um die Sammlung auf der Serverseite zu bearbeiten.
9. Verwenden Sie Nginx vor Node
Nginx ist ein kleiner, leichter Webserver, der die Belastung Ihres Node.js-Servers reduzieren kann. Sie können statische Ressourcen auf Nginx statt auf Node konfigurieren. Sie können gzip verwenden, um Antworten auf Nginx zu komprimieren und so alle Antworten kleiner zu machen. Wenn Sie also ein laufendes Produkt haben, sollten Sie meiner Meinung nach Nginx verwenden, um die Ausführungsgeschwindigkeit zu verbessern.
10. JavaScript verpacken
Schließlich können Sie die Geschwindigkeit der Seitenanwendung auch erheblich verbessern, indem Sie mehrere JS-Dateien packen. Wenn der Browser beim Rendern der Seite auf das Element

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen

Teilen von Win11-Tipps: Ein Trick, um die Anmeldung bei einem Microsoft-Konto zu überspringen Windows 11 ist das neueste Betriebssystem von Microsoft mit neuem Designstil und vielen praktischen Funktionen. Für einige Benutzer kann es jedoch etwas nervig sein, sich bei jedem Systemstart bei ihrem Microsoft-Konto anmelden zu müssen. Wenn Sie einer von ihnen sind, können Sie auch die folgenden Tipps ausprobieren, die es Ihnen ermöglichen, die Anmeldung mit einem Microsoft-Konto zu überspringen und direkt auf die Desktop-Oberfläche zuzugreifen. Zunächst müssen wir anstelle eines Microsoft-Kontos ein lokales Konto im System erstellen, um uns anzumelden. Der Vorteil dabei ist

In der C-Sprache stellt es einen Zeiger dar, der die Adresse anderer Variablen speichert; & stellt den Adressoperator dar, der die Speicheradresse einer Variablen zurückgibt. Zu den Tipps zur Verwendung von Zeigern gehören das Definieren von Zeigern, das Dereferenzieren von Zeigern und das Sicherstellen, dass Zeiger auf gültige Adressen zeigen. Tipps zur Verwendung von Adressoperatoren sowie das Abrufen von Variablenadressen und das Zurückgeben der Adresse des ersten Elements des Arrays beim Abrufen der Adresse eines Array-Elements . Ein praktisches Beispiel, das die Verwendung von Zeiger- und Adressoperatoren zum Umkehren einer Zeichenfolge veranschaulicht.

VSCode (Visual Studio Code) ist ein von Microsoft entwickelter Open-Source-Code-Editor. Er verfügt über leistungsstarke Funktionen und umfangreiche Plug-in-Unterstützung, was ihn zu einem der bevorzugten Tools für Entwickler macht. Dieser Artikel bietet eine Einführung für Anfänger, die ihnen hilft, schnell die Fähigkeiten im Umgang mit VSCode zu erlernen. In diesem Artikel stellen wir die Installation von VSCode, grundlegende Bearbeitungsvorgänge, Tastenkombinationen, Plug-In-Installation usw. vor und stellen den Lesern spezifische Codebeispiele zur Verfügung. 1. Installieren Sie zuerst VSCode, wir brauchen

Titel: PHP-Programmiertipps: So springen Sie innerhalb von 3 Sekunden zu einer Webseite. Bei der Webentwicklung stoßen wir häufig auf Situationen, in denen wir innerhalb einer bestimmten Zeitspanne automatisch zu einer anderen Seite springen müssen. In diesem Artikel wird erläutert, wie Sie mit PHP Programmiertechniken implementieren, um innerhalb von 3 Sekunden zu einer Seite zu springen, und spezifische Codebeispiele bereitstellen. Zunächst wird das Grundprinzip des Seitensprungs über das Standortfeld im HTTP-Antwortheader realisiert. Durch Setzen dieses Feldes kann der Browser automatisch zur angegebenen Seite springen. Nachfolgend finden Sie ein einfaches Beispiel, das die Verwendung von P demonstriert

Die Zeitkomplexität misst die Ausführungszeit eines Algorithmus im Verhältnis zur Größe der Eingabe. Zu den Tipps zur Reduzierung der Zeitkomplexität von C++-Programmen gehören: Auswahl geeigneter Container (z. B. Vektor, Liste) zur Optimierung der Datenspeicherung und -verwaltung. Nutzen Sie effiziente Algorithmen wie die schnelle Sortierung, um die Rechenzeit zu verkürzen. Eliminieren Sie mehrere Vorgänge, um Doppelzählungen zu reduzieren. Verwenden Sie bedingte Verzweigungen, um unnötige Berechnungen zu vermeiden. Optimieren Sie die lineare Suche, indem Sie schnellere Algorithmen wie die binäre Suche verwenden.

Win11-Tricks aufgedeckt: So umgehen Sie die Anmeldung bei einem Microsoft-Konto. Vor kurzem hat Microsoft ein neues Betriebssystem Windows11 auf den Markt gebracht, das große Aufmerksamkeit erregt hat. Im Vergleich zu früheren Versionen hat Windows 11 viele neue Anpassungen in Bezug auf das Interface-Design und funktionale Verbesserungen vorgenommen, aber es hat auch einige Kontroversen ausgelöst. Der auffälligste Punkt ist, dass es Benutzer dazu zwingt, sich mit einem Microsoft-Konto am System anzumelden . Einige Benutzer sind möglicherweise eher daran gewöhnt, sich mit einem lokalen Konto anzumelden, und sind nicht bereit, ihre persönlichen Daten an ein Microsoft-Konto zu binden.

Ausführliche Erläuterung der Tipps zur Verwendung des √-Symbols im Word-Feld. Bei der täglichen Arbeit und beim Lernen müssen wir häufig Word für die Bearbeitung und den Satz von Dokumenten verwenden. Unter ihnen ist das √-Symbol ein häufiges Symbol, das normalerweise „richtig“ bedeutet. Die Verwendung des √-Symbols im Word-Feld kann uns helfen, Informationen klarer darzustellen und die Professionalität und Schönheit des Dokuments zu verbessern. Als nächstes werden wir die Fähigkeiten zur Verwendung des √-Symbols im Wortfeld im Detail vorstellen und hoffen, allen zu helfen. 1. Fügen Sie das √-Symbol ein. In Word gibt es viele Möglichkeiten, das √-Symbol einzufügen. eins

Die Parameterkonfiguration des Vivox100 wurde enthüllt: Wie kann die Prozessorleistung optimiert werden? In der heutigen Zeit der rasanten technologischen Entwicklung sind Smartphones zu einem unverzichtbaren Bestandteil unseres täglichen Lebens geworden. Als wichtiger Bestandteil eines Smartphones steht die Leistungsoptimierung des Prozessors in direktem Zusammenhang mit der Benutzererfahrung des Mobiltelefons. Als hochkarätiges Smartphone hat die Parameterkonfiguration des Vivox100 große Aufmerksamkeit erregt, insbesondere die Optimierung der Prozessorleistung hat bei den Benutzern große Aufmerksamkeit erregt. Als „Gehirn“ des Mobiltelefons beeinflusst der Prozessor direkt die Laufgeschwindigkeit des Mobiltelefons.
