Node.js os.freemem()无法正常工作

时间:2018-08-18 19:19:11

标签: javascript node.js

我正在使用Node.js Os模块的这种方法:os.freemem()

这是我的示例代码:

const os = require('os');

const bytesToSize = (bytes) => {
const sizes = ['Bytes', 'KB', 'MB', 'GB', 'TB'];
if (bytes == 0) return '0 Byte';
const i = parseInt(Math.floor(Math.log(bytes) / Math.log(1024)));
return Math.round(bytes / Math.pow(1024, i), 2) + ' ' + sizes[i];
};

 console.log('free memory : ', bytesToSize(os.freemem()));
 console.log('total memory : ', bytesToSize(os.totalmem()));

运行代码后,给出以下结果:

可用内存:164 MB

总内存:8 GB

但是我的OS系统监视器向我显示:

os free memory

为什么会有这样的区别?

1 个答案:

答案 0 :(得分:0)

显然,系统监视器不会显示可用的内存,而是显示可用的内存。

节点的OS.freemem()free命令使用来自/proc/meminfo的信息:

klaimmore@klaimmore-HP-ZBook-14:/rep$ sudo cat /proc/meminfo | grep Mem
MemTotal:       16320372 kB
MemFree:         1274072 kB
MemAvailable:   10618284 kB
klaimmore@klaimmore-HP-ZBook-14:/rep$ node -p "require('os').freemem()/1024"
1254828
klaimmore@klaimmore-HP-ZBook-14:/rep$ free -k
              total        used        free      shared  buff/cache   available
Mem:       16320372     4684776     1273228      678996    10362368    10617452
Swap:       2097148           0     2097148