MST

星途 面试题库

面试题:JavaScript中如何获取Node进程的内存使用情况

在Node.js环境下,使用JavaScript编写代码来获取当前进程的内存使用量,包括堆内存和非堆内存,并简要解释这些内存概念。
17.3万 热度难度
编程语言JavaScript

知识考点

AI 面试

面试题答案

一键面试

代码实现

const process = require('process');

const memoryUsage = process.memoryUsage();
console.log(`堆内存使用量(rss): ${memoryUsage.rss} 字节`);
console.log(`堆内存使用量(heapTotal): ${memoryUsage.heapTotal} 字节`);
console.log(`堆内存使用量(heapUsed): ${memoryUsage.heapUsed} 字节`);
console.log(`非堆内存使用量(external): ${memoryUsage.external} 字节`);

内存概念解释

  1. 堆内存(Heap Memory)
    • heapTotal:Node.js进程已申请的堆内存总量。
    • heapUsed:当前Node.js进程实际使用的堆内存量。这部分内存用于存储对象和闭包等。JavaScript中的对象、数组等数据结构存储在堆内存中。当对象不再被引用时,垃圾回收机制会回收这部分堆内存空间。
  2. 非堆内存(Non - heap Memory)
    • external:这部分内存主要用于V8引擎外部数据的存储,比如绑定到JavaScript对象的C++对象所占用的内存。它不属于V8堆内存的一部分。
    • rss(Resident Set Size): 进程在物理内存中占用的总空间大小,包括堆内存、非堆内存以及操作系统为进程分配的其他资源所占用的内存。它反映了进程实际占用的物理内存大小。