如何使用 Node.js 检查 ram 的当前使用情况? (Discord.js 机器人)

Posted

技术标签:

【中文标题】如何使用 Node.js 检查 ram 的当前使用情况? (Discord.js 机器人)【英文标题】:How can i check the current usage of ram with Node.js? (Discord.js Bot) 【发布时间】:2018-12-02 19:01:51 【问题描述】:

我想创建一个名为 _ram 的命令,它应该显示机器人 ram 的当前使用情况。我已经尝试过这些事情:

$client.performance.memory //(Says memory is not defined)
$window.performance.memory //(Window is not defined)

有没有一种工作方式如何显示它?

【问题讨论】:

您可能还想用 [electron] 标记您的问题,因为它有自己的 API 来查询实际的总内存使用量,而且方式比仅使用 Node.js 的方式更多。 【参考方案1】:

如果你想知道你的Node.js进程使用了​​多少内存,可以查询:

process.memoryUsage().heapUsed / 1024 / 1024;

它将以字节为单位输出您的进程使用的内存。它不会显示 Node.js 使用的实际内存,因为在这种情况下,您还需要考虑 Node.js 垃圾收集器。

【讨论】:

【参考方案2】:

您必须使用:process.memoryUsage(),它返回一个对象,以字节为单位描述进程的内存使用情况。


  rss: 4935680,
  heapTotal: 1826816,
  heapUsed: 650472,
  external: 49879

heapTotalheapUsed 指的是 V8 的内存使用情况。 external 指 绑定到由管理的 javascript 对象的 C++ 对象的内存使用情况 V8。 rss,驻留集大小,是在 主内存设备(即总分配内存的子集) 进程,包括堆、代码段和栈。

【讨论】:

【参考方案3】:
var os = require('os');

var usedMemory = os.totalmem() -os.freemem(), totalMemory = os.totalmem();

var  getpercentage = 
  ((usedMemory/totalMemory) * 100).toFixed(2) + '%'

console.log("Memory used in GB", (usedMemory/ Math.pow(1024, 3)).toFixed(2))
console.log("Used memory" , getpercentage);

【讨论】:

以上是关于如何使用 Node.js 检查 ram 的当前使用情况? (Discord.js 机器人)的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Node.js 确定当前的操作系统

如何检查然后更新node.js中的AWS dynamoDB项?

如何检查字符串是不是与 node.js 中的任何正则表达式数组匹配?

如何使用 Promise 和 node.js 正确检查和记录 http 状态代码?

如何让返回等待 MySQL 连接结束?节点.js

node.js 中间件检查强制参数