Maison interface Web Questions et réponses frontales Comment vérifier la mémoire dans nodejs

Comment vérifier la mémoire dans nodejs

May 25, 2023 pm 03:04 PM

Node.js, en tant que langage de programmation moderne côté serveur, gère généralement de grandes quantités de données et des requêtes simultanées. Par conséquent, lors du processus de développement et d’exploitation de ces applications, il est crucial de détecter la mémoire occupée par l’application. Cet article explique comment vérifier l'utilisation de la mémoire de votre application dans Node.js.

Comment la mémoire est utilisée dans Node.js

Node.js utilise deux types de mémoire : la mémoire tas et la mémoire pile.

La mémoire tas est l'endroit où les objets alloués dynamiquement sont stockés dans Node.js, tels que des tableaux, des objets et des chaînes. Au fur et à mesure que les programmes s'exécutent, ils demandent dynamiquement de l'espace dans la mémoire tas. Cela signifie que la taille de la mémoire tas est variable et variera donc en fonction des opérations et des besoins de l'application.

D'un autre côté, la mémoire de pile gère les appels de fonctions JavaScript. Chaque fois qu'une fonction est appelée, ses variables internes et arguments sont enregistrés sur la pile. Lorsque la fonction termine son exécution, le cadre de pile est sauté et l'espace mémoire est libéré.

Gestion de la mémoire et garbage collection Node.js

Dans Node.js, la gestion de la mémoire est effectuée par le moteur V8. Le moteur V8 est un moteur JavaScript développé par Google et est utilisé pour compiler et exécuter du code JavaScript.

Dans Node.js, V8 est responsable de la gestion de la mémoire tas et du garbage collection. Le garbage collection est un processus automatisé qui détecte et efface l'espace mémoire qui n'est plus utilisé. Le garbage collector de V8 est basé sur un algorithme de balayage de marquage. Pendant l'exécution du programme, il analyse périodiquement la mémoire tas et marque les objets référencés. Ensuite, il efface les objets qui ne sont pas référencés et libère l'espace qu'ils occupent.

Outils de vérification de la mémoire dans Node.js

Il existe de nombreux outils dans Node.js qui peuvent vous aider à vérifier l'utilisation de la mémoire.

  1. process.memoryUsage()

Dans Node.js, la méthode process.memoryUsage() peut détecter la mémoire utilisée par l'application actuelle . Cette méthode renvoie un objet qui contient l'utilisation de la mémoire du processus à ce moment. L'objet renvoyé par cette méthode possède les propriétés suivantes :

  • rss – Resident Set Size, la somme de la mémoire physique actuellement utilisée par le processus (y compris la partie occupée par les bibliothèques partagées).
  • heapTotal - La taille totale du tas, représente la mémoire totale actuellement demandée dans le tas, y compris la mémoire inutilisée
  • heapUsed - La taille du tas qui a été utilisé , représente l'application actuelle pour la partie de la mémoire tas utilisée
  • external - Le nombre total de sockets système actuellement utilisés par le processus

Peut être accessible périodiquement à l'aide de la méthode process.memoryUsage(). Vérifiez l'utilisation de la mémoire du tas pour comprendre l'empreinte mémoire et le garbage collection de votre application.

Le code suivant montre comment utiliser la méthode process.memoryUsage() pour vérifier l'utilisation de la mémoire :

const used = process.memoryUsage();
for (let key in used) {
 console.log(`${key} ${Math.round(used[key] / 1024 / 1024 * 100) / 100} MB`);
}
Copier après la connexion

L'exécution de ce code affichera l'utilisation de la mémoire de l'application actuelle vers le consoler. La méthode

  1. v8.getHeapStatistics()

v8.getHeapStatistics() renvoie un objet qui contient l'allocation de mémoire du tas sous le moteur statistique V8. informations sur le recyclage de la mémoire et d’autres aspects.

L'objet renvoyé par cette méthode contient les propriétés suivantes :

  • total_heap_size — La taille totale du tas
  • total_heap_size_executable — Le taille du code exécutable
  • total_physical_size — La taille totale du tas et la somme des tailles des bibliothèques partagées
  • total_available_size — La taille de la mémoire disponible pour l'allocation
  • used_heap_size — Taille de la mémoire du tas déjà utilisée
  • heap_size_limit — Limite de la taille du tas
  • malloced_memory — La taille totale de la mémoire allouée en dehors du tas
  • #🎜🎜 #peak_malloced_memory — La plus grande allocation externe jamais réalisée Taille de la mémoire
  • does_zap_garbage — Une valeur booléenne indiquant s'il faut effectuer un garbage collection
Le code suivant montre comment utilisez la méthode v8.getHeapStatistics() pour vérifier l'utilisation de la mémoire :

const v8 = require('v8');
const used = v8.getHeapStatistics();
for (let key in used) {
 console.log(`${key} ${Math.round(used[key] / 1024 / 1024 * 100) / 100} MB`);
}
Copier après la connexion

L'exécution de ce code affichera des statistiques de tas sur la console.

    heapdump
heapdump est un module Node.js qui vous permet de générer un instantané du tas de mémoire actuel. Ce module génère un fichier nommé heapdump-YYYYMMDD_HHMMSS.heapsnapshot pour une analyse plus approfondie de l'utilisation de la mémoire de l'application.

L'utilisation du module heapdump doit être installée via npm. Entrez la commande suivante dans le terminal pour installer le module heapdump :

npm install heapdump --save
Copier après la connexion

Le code suivant montre comment utiliser le module heapdump pour générer un instantané de mémoire :

const heapdump = require('heapdump');
heapdump.writeSnapshot((err, filename) => {
   console.log(`Heap dump written to ${filename}`);
});
Copier après la connexion
Le code ci-dessus générera un instantané de l'instantané du tas de mémoire actuel et l'enregistrera dans le fichier spécifié. Ce fichier peut ensuite être analysé à l'aide de divers outils pour connaître l'utilisation de la mémoire de l'application.

Summary

Cet article présente les bases de la gestion de la mémoire et du garbage collection dans Node.js, et comment utiliser certains outils pour afficher l'utilisation de la mémoire de votre application. Lorsque nous développons et maintenons de grandes applications, il est très important de comprendre l’utilisation de la mémoire. L'utilisation des outils ci-dessus peut nous aider à découvrir et à résoudre d'éventuels problèmes de mémoire à temps pour garantir les performances et la stabilité des applications.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Comment déverrouiller tout dans Myrise
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Qu'est-ce que l'utilisation Effecte? Comment l'utilisez-vous pour effectuer des effets secondaires? Qu'est-ce que l'utilisation Effecte? Comment l'utilisez-vous pour effectuer des effets secondaires? Mar 19, 2025 pm 03:58 PM

L'article traite de l'utilisation Effecte dans React, un crochet pour gérer les effets secondaires comme la récupération des données et la manipulation DOM dans les composants fonctionnels. Il explique l'utilisation, les effets secondaires courants et le nettoyage pour éviter des problèmes comme les fuites de mémoire.

Expliquez le concept de chargement paresseux. Expliquez le concept de chargement paresseux. Mar 13, 2025 pm 07:47 PM

Le chargement paresseux retarde le chargement du contenu jusqu'à ce qu'il soit nécessaire, améliorant les performances du Web et l'expérience utilisateur en réduisant les temps de chargement initiaux et la charge du serveur.

Comment fonctionne l'algorithme de réconciliation React? Comment fonctionne l'algorithme de réconciliation React? Mar 18, 2025 pm 01:58 PM

L'article explique l'algorithme de réconciliation de React, qui met à jour efficacement le DOM en comparant les arbres DOM virtuels. Il traite des avantages de la performance, des techniques d'optimisation et des impacts sur l'expérience utilisateur. Compte de charge: 159

Comment fonctionne le currying en JavaScript et quels sont ses avantages? Comment fonctionne le currying en JavaScript et quels sont ses avantages? Mar 18, 2025 pm 01:45 PM

L'article traite du curry dans JavaScript, une technique transformant les fonctions mulguments en séquences de fonctions à argument unique. Il explore la mise en œuvre du currying, des avantages tels que des applications partielles et des utilisations pratiques, améliorant le code

Quelles sont les fonctions d'ordre supérieur en JavaScript, et comment peuvent-ils être utilisés pour écrire du code plus concis et réutilisable? Quelles sont les fonctions d'ordre supérieur en JavaScript, et comment peuvent-ils être utilisés pour écrire du code plus concis et réutilisable? Mar 18, 2025 pm 01:44 PM

Les fonctions d'ordre supérieur dans JavaScript améliorent la concision du code, la réutilisabilité, la modularité et les performances par abstraction, modèles communs et techniques d'optimisation.

Qu'est-ce que UseContext? Comment l'utilisez-vous pour partager l'état entre les composants? Qu'est-ce que UseContext? Comment l'utilisez-vous pour partager l'état entre les composants? Mar 19, 2025 pm 03:59 PM

L'article explique UseContext dans React, qui simplifie la gestion de l'État en évitant le forage des accessoires. Il traite des avantages tels que les améliorations centralisées de l'État et des performances grâce à des redevances réduites.

Comment connectez-vous les composants React au magasin Redux à l'aide de Connect ()? Comment connectez-vous les composants React au magasin Redux à l'aide de Connect ()? Mar 21, 2025 pm 06:23 PM

L'article discute de la connexion des composants React à Redux Store à l'aide de Connect (), expliquant MapStateToproprop, MapDispatchToprops et des impacts de performances.

Comment empêchez-vous le comportement par défaut dans les gestionnaires d'événements? Comment empêchez-vous le comportement par défaut dans les gestionnaires d'événements? Mar 19, 2025 pm 04:10 PM

L'article discute de la prévention des comportements par défaut dans les gestionnaires d'événements à l'aide de la méthode empêchée dedEfault (), de ses avantages tels que une expérience utilisateur améliorée et des problèmes potentiels tels que les problèmes d'accessibilité.

See all articles