创建内存消耗应用程序

时间:2012-02-21 00:45:37

标签: c# .net memory-management

我想编写一个在服务器上占用大量内存的应用程序,以便能够显示与服务器上的内存压力相关的问题。我对C#相当了解,但我很好奇是什么是使应用程序以可控方式消耗过多内存的最有效方法。例如,我希望能够传递一个参数,该参数说消耗x MB的内存并使其消耗接近该值的某个位置。任何关于如何做到这一点的想法都将不胜感激。

3 个答案:

答案 0 :(得分:3)

最简单的方法不是创建一个你感兴趣的大小的字节数组。要获得非常大的分配,你可能需要使用这种技术使用多个数组。

此外,如果你如此倾向,你可以调用VirtualAlloc

如果您只需要一个应用程序,您也可以使用sysinternals中的Testlimit。这个实用程序用于Mark Russinovich的精彩Pushing the Limits of Windows系列。

答案 1 :(得分:2)

取决于"内存压力"您正在寻找:

  • boot.ini burnmemory选项 - http://support.microsoft.com/kb/833721真正限制可用内存量。
  • 创建一个程序,只需分配大量内存并主动触摸它。通过这种方式,您可以看到其他程序对内存分配/使用缓慢的反应。
  • 在您感兴趣的过程中分配内存,以便在地址空间上产生压力(主要是32位)。

答案 2 :(得分:2)

这样做的一种方法是创建一个字节数组。将输入值从MB转换为字节,然后分配数组。如果要直接尝试堆栈分配,可以使用stackalloc