1
我剛剛開始研究一個項目(我不是新項目),因爲性能優化會將32GB圖形數據(節點,邊等)加載到內存中並保留在內存中。這是一項長期運行的服務,因此數據意味着在服務的整個生命週期內保留在內存中。當CLR觸發Gen 2採集時,會有大量暫停(當然),從而影響性能,而GC則會掃描Gen 2,將所有事件都標記爲可訪問對象。導致性能問題的GC暫停
我想知道的是,有哪些策略可用於託管應用程序,它們必須將大量數據保存在內存中?什麼是防止第二代集合運行的最佳方式 - 曾經?
如果你從未運行第二代,你會泄漏使它成爲第二代的物體,但它們不會永遠活着。根據你的應用程序的作用,這可能是很多對象。 – delnan
對不起,你是對的。但是有沒有可以防止這種長時間停頓的策略?或者使用託管運行時實現這種應用程序是一個壞主意? –
@itadapter謝謝。我不再爲那家公司工作,但那是我們最終做的 - 對非託管狀態進行編組 - 而且你是對的,它解決了問題。 –