检查正在运行的程序中的可用RAM量

Ada*_*tan 2 memory malloc

在求职面试中,我的一位朋友被要求编写一个测量可用内存量的程序.预期的答案是以malloc()二进制搜索方式使用:分配更大和更大的内存部分,直到获得失败消息,减小部分大小,并总计分配的内存量.

我相信这种方法可以测量虚拟内存量,而不是物理内存量.但我对此事感到好奇.

有没有办法告诉程序中的可用RAM量,而不使用exec(dmesg |grep -i memory)

cle*_*tus 5

你是对的:malloc()不区分物理内存或虚拟内存.事实上,这就是虚拟内存的重点:使这些细节与程序无关.

你可以找到它,但它是特定于操作系统的.例如,Linux.