2014-03-12 67 views
0

我有一個系統,具有300MB的物理內存和6個.NET進程。資源可用時,它們每個都可以從閒置時的100MB跳到緊張時的500MB。我知道必須增加系統規格,但是我想知道GC是否會嘗試更頻繁地收集內存,並嘗試儘可能小地保留進程內存分配? GC頻率如何取決於可用的系統內存?CLR垃圾收集器頻率和系統內存可用

我正在使用2.0運行時。

+1

GC只消耗*虛擬*內存,無論機器安裝了多少物理RAM,它總是會有至少2千兆字節。這是**非常**不大可能是300MB,這不是你可以從RAM芯片供應商購買的數量。操作系統的工作是將RAM用於進程,.NET沒有任何關係。 –

+0

我沒有說我已經安裝了300MB內存,但是AVAILABLE。 SQL,JVM和其他服務佔用大量8GB的空間,爲我的進程留下了300MB空間。 IDLE中的每個人都有大約100MB的空間,但是如果有足夠的資源,他們每個人的壓力都會增加到500MB。 – Random

回答

1

垃圾收集的確取決於系統內存。這很懶。這意味着如果有足夠的可用空間,它將不經常收集。

您可以閱讀詳細信息here

對你最重要的一句話:當滿足下列條件之一爲真,就會出現

垃圾收集:

  • 該系統具有低的物理內存。

如果您的整體內存較低,則顯然會更頻繁地出現空閒物理內存較低的情況。