创建内存消耗应用程序

本文关键字:应用程序 内存 创建 | 更新日期: 2023-09-27 18:25:11

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

创建内存消耗应用程序

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

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

如果你只需要一个应用程序,你也可以使用系统内部的Testlimit。这个实用程序曾在Mark Russinovich的《突破Windows的极限》系列中使用过。

取决于您要查找的"内存压力":

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

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