我正在使用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系统监视器向我显示:
为什么会有这样的区别?
答案 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