共用方式為


設定 .NET 記憶體回收

為了達到良好的效能,請務必以正確的方式為定址接收器處理設定 .NET 記憶體回收。 根據小組的發現,最佳設定組合是設定 gcServer=truegcConcurrent=true。 您可以在 C# 專案中設定這些值 (.csproj),或 app.config。如需詳細資訊,請參閱記憶體回收的變體

.NET Core 與 .NET 5+

此方法不支援針對完整 .NET Framework 進行 SDK 樣式專案編譯

<PropertyGroup>
    <ServerGarbageCollection>true</ServerGarbageCollection>
    <ConcurrentGarbageCollection>true</ConcurrentGarbageCollection>
</PropertyGroup>

.NET Framework

針對完整 .NET Framework 的 SDK 樣式專案編譯,應該仍然使用此組態樣式,請考量範例 app.config XML 檔案:

<configuration>
    <runtime>
        <gcServer enabled="true"/>
        <gcConcurrent enabled="true"/>
    </runtime>
</configuration>

不過,如果定址接收器是以 Azure 背景工作角色的一部分執行,預設會設定為使用工作站 GC,就不容易這麼做。 有一篇相關的部落格文章討論如何為 Azure 背景工作角色設定相同的組態,請參閱 Azure 中的伺服器記憶體回收模式

重要

伺服器記憶體回收僅適用於多處理器電腦上。 因此,即使您透過應用程式 .csproj 檔案或透過所參考部落格文章上的指令碼來設定記憶體回收,如果定址接收器是在具有單一核心的 (虛擬) 電腦上執行,您就不會獲得 gcServer=true 的優點。 如需詳細資訊,請參閱 GCSettings.IsServerGC 備註