我能为在Linux下运行的C++程序分配多少内存?在我的测试中,使用
我的测试机器有两个,一个是使用VirtualBox的虚拟机,CentOS7 64位,2Gb内存。主机是Win10 64位,内存为8Gb。
使用free命令的截图,
以下是测试代码:
new
或malloc
可以分配超过170Gb的内存。相比之下,同样的代码在Windows下只能分配1.8G然后终止。我的测试机器有两个,一个是使用VirtualBox的虚拟机,CentOS7 64位,2Gb内存。主机是Win10 64位,内存为8Gb。
使用free命令的截图,
![enter image description here](https://istack.dev59.com/ikgWw.webp)
#include<iostream>
#include <unistd.h>
#define EVERY_ALLOC_MEM 1024 * 1014 // 1Mb
int main(int argc, char *argv[])
{
std::cout << getpid() << ":" << argv[0] << std::endl;
for (size_t i = 0; ; i++)
{
//char* mem = new char[EVERY_ALLOC_MEM];
char* mem = (char*)malloc(EVERY_ALLOC_MEM);
std::cout << "used " << i << "Mb, that is " << i * 1024 << "Kb, and " << (float)i/1024 << "Gb"<< std::endl;
}
return 0;
}