添加和移除内存压力应用程序示例

更新:2007 年 11 月

本示例说明了托管垃圾回收与非托管代码之间的相互操作。

有关使用这些示例的信息,请参见下面的主题:

Download sample

使用命令提示生成示例

  1. 打开命令提示窗口,然后定位到 GCDemo 目录下的语言特定的子目录中的一个。有关所需设置和 SDK 命令提示的信息,请参见如何:设置示例设置

  2. 根据所选择的编程语言,在命令行上键入 msbuild GCDemoCS.sln 或 msbuild GCDemoVB.sln。

使用 Visual Studio 生成示例

  1. 打开 Windows 资源管理器,然后定位到 GCDemo 目录下的语言特定的子目录中的一个。

  2. 根据所选择的编程语言,双击 GCDemoCS.sln 或 GCDemoVB.sln 文件,从而在 Visual Studio 中打开该文件。

  3. 在“生成”菜单中选择“生成解决方案”。

运行示例

  • 打开命令提示窗口,然后定位到包含新的可执行文件的目录。

要求

如果您使用 Microsoft Visual Studio 2005(“Visual Studio 2005 命令提示符”)进行生成,或者已在包含路径中安装并指定了 Platform SDK,则这些示例需要可用于您的项目的 Windows 头文件。

备注

本示例说明了 GC 类的新的 AddMemoryPressureRemoveMemoryPressure 方法。您可以使用这些方法为零代回收更改垃圾回收策略的模式。只要正在分配的非托管资源的数目大大超过同一批资源的托管占用空间,您就应使用这些方法向垃圾回收器 (GC) 发出提示。如果没有该提示,GC 就不会注意非托管内存,因而便选择不到最理想的回收策略。

运行该示例,观察在有内存压力和无内存压力的情况下成功分配的数目(您将注意到在适当添加压力时分配成功的几率更高)。另外,观察添加压力对执行的零代回收数目产生的影响,这说明在添加了压力后,GC 执行回收的次数会增加。

请始终记住,若要添加任何压力,应相应地移除等量的压力。