最大化内存使用量

时间:2014-01-10 14:07:33

标签: c++ memory-management windows-xp

他们在C ++中的任何程序是否可以最大化内存使用量,直到达到“内存转储”(蓝屏然后重新启动)。只是好奇,要在Windows XP上执行此操作。 它需要什么? 使用乘法或加法的无限循环可以最大化内存使用吗?我想不是。它只是增加CPU使用率(但遗憾的是不高达10-20%)。然后是什么方式?

2 个答案:

答案 0 :(得分:1)

分配变量时使用内存。最快的方法是先预先分配一个非常大的数组,或者在循环中使用newmalloc

while (true)
{
    new int[10000];
}

当你的内存不足时,这最终会抛出异常。

答案 1 :(得分:1)

如果您想要占用所有可用内存,那么就这样做:

int main()
{
  while(true)
  {
    char *buffer=new char[1024];
  }

  return 0;
}

这会以1K块的速度消耗掉内存。但是,所有这一切都会导致您的进程可用的所有虚拟内存(在32位Windows上大约2GB)被占用,此时您的程序将会崩溃而死亡而不会影响其他任何人。

如果您正在寻找能够在内存不足时导致Windows崩溃的内容,那么您需要在内核空间中运行代码,因此您需要编写类似设备驱动程序的内容。

相关问题