共用方式為


新增及移除記憶體壓力應用程式範例

更新:2007 年 11 月

這個範例會示範 Managed 記憶體回收和 Unmanaged 程式碼之間的互通。

如需使用這些範例的詳細資訊,請參閱下列主題:

Download sample

若要使用命令提示字元建置範例

  1. 開啟 [命令提示字元] 視窗,並巡覽至 GCDemo 目錄下任一語言特定子目錄。如需必要設定和 SDK 命令提示字元的詳細資訊,請參閱 HOW TO:設定範例設定

  2. 根據您選擇的程式設計語言,在命令列上輸入 msbuild GCDemoCS.sln 或 msbuild GCDemoVB.sln。

若要使用 Visual Studio 建置範例

  1. 開啟 [Windows 檔案總管],並巡覽至 GCDemo 目錄下任一語言特定子目錄。

  2. 根據您選擇的程式設計語言,按兩下 [GCDemoCS.sln] 或 [GCDemoVB.sln] 檔案,在 Visual Studio 中開啟該檔案。

  3. 在 [建置] 功能表中,選取 [建置方案]。

若要執行範例

  • 開啟 [命令提示字元] 視窗,巡覽至新的可執行檔所在的目錄。

需求

這些範例需要 Windows 標頭,如果您使用 Microsoft Visual Studio 2005 (Visual Studio 2005 命令提示字元),或已安裝並在 Include 路徑中指定 Platform SDK,專案即可使用這些標頭。

備註

這個範例示範了新的 AddMemoryPressureGC 類別的 RemoveMemoryPressure 方法。您可以使用這些方法來變更層代零 (Generation-zero) 回收記憶體的回收策略模式。每當配置的 Unmanaged 資源數目大幅超出相同資源的 Managed 佔用空間 (Footprint) 時,您都必須使用這些方法提供記憶體回收行程 (GC) 提示。少了這項提示,GC 就無法得知有 Unmanaged 記憶體,因此可能會選取次佳的回收策略。

請直接執行此範例,並觀察在有記憶體壓力和沒有記憶體壓力的情況下,成功配置的數目 (您會發現加入適當的壓力可以提高配置成功的機率)。同時也請觀察加入壓力後對層代零回收數目的影響,這表示加入壓力後,GC 執行了更多的回收。

請務必記住,在配置新增壓力時,同時也要適當地移除等量的壓力。