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.
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 :
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`); }
L'exécution de ce code affichera l'utilisation de la mémoire de l'application actuelle vers le consoler. La méthode
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 :
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`); }
npm install heapdump --save
const heapdump = require('heapdump'); heapdump.writeSnapshot((err, filename) => { console.log(`Heap dump written to ${filename}`); });
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!