如何在Node.js中测试内存堆大小?

时间:2019-03-15 09:30:58

标签: node.js

我有2个版本的数据。

  1. 只是json对象的数组。
  2. 相同的数组,带有引用。

例如,如果我有1000个具有相同管理者的对象:

{
    "_id": 101,
    "manager": {
        "_id": 12160,
        "name": "name"
    }
}

我将经理对象更改为引用。

managers[12160] = {
            "_id": 12160,
            "name": "name"
        }

array.forEach(item => item.manager = managers[12160])

因此,我想验证它确实减少了内存大小。知道怎么做吗?

1 个答案:

答案 0 :(得分:-1)

如上一个答案所述, 建议的示例代码很可能不会对堆产生任何明显的影响, 但是您可以使用节点模块“ os”和“ v8”从您的环境中读取一些统计信息, 这是一些示例:

    var stats = {
     'Load Average' : os.loadavg().join(' '),
     'CPU Count' : os.cpus().length,
     'Free Memory' : os.freemem(),
     'Current Malloced Memory' : v8.getHeapStatistics().malloced_memory,
     'Peak Malloced Memory' : v8.getHeapStatistics().peak_malloced_memory,
     'Allocated Heap Used (%)' : Math.round((v8.getHeapStatistics().used_heap_size / v8.getHeapStatistics().total_heap_size) * 100),
     'Available Heap Allocated (%)' : Math.round((v8.getHeapStatistics().total_heap_size / v8.getHeapStatistics().heap_size_limit) * 100),
     'Uptime' : os.uptime()+' Seconds'
   };