設定 .NET 記憶體回收
為了達到良好的效能,請務必以正確的方式為定址接收器處理設定 .NET 記憶體回收。 根據小組的發現,最佳設定組合是設定 gcServer=true
和 gcConcurrent=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 備註。