GC.RefreshMemoryLimit 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
指示垃圾回收器透過偵測系統上的各種記憶體限制來重新配置自己。
public:
static void RefreshMemoryLimit();
public static void RefreshMemoryLimit();
static member RefreshMemoryLimit : unit -> unit
Public Shared Sub RefreshMemoryLimit ()
例外狀況
硬性限制太低了。 這種情況可能發生在刷新時,因為新的 AppData 設定或容器記憶體限制變動所暗示的堆積硬上限低於已提交的數值。
-或-
硬性限制是無效的。 例如,這種情況可能發生在堆積硬極限百分比為負的情況下。
備註
除了實際的實體記憶體限制與容器限制設定外,這些設定還可以被覆寫:
- GCHeapHardLimit
- GCHeapHardLimitPercent
- GCHeapHardLimitSOH
- GCHeapHardLimitLOH
- GCHeapHardLimitPOH
- GCHeapHardLimitSOHPercent
- GCHeapHardLimitLOHPercent
- GCHeapHardLimitPOHPercent
這些變數不會更新環境變數(不會被讀取),而是在 AppContext 中使用 ulong 值來覆寫這些設定。
例如,你可以用 AppContext.SetData("GCHeapHardLimit", (ulong) 100 * 1024 * 1024) 來覆寫 GCHeapHardLimit 到 100M。
這個 API 只處理那些在執行時可以處理的設定。 對於對 32 位元系統沒有任何影響的設定(例如 GCHeapHardLimit* 的),這個 API 無法處理。