我在分析應用程序(使用VS 2010),其在生產中表現不好的。 VS 2010給出的建議之一是:高速率第1代垃圾收集
第1代垃圾收集的發生率相對較高。如果通過 設計,大部分的程序的數據結構的分配和 持續了很長一段時間,這不是一般的問題。但是,如果此行爲是意外的,則您的應用程序可能會鎖定對象。如果 你不能確定,你可以收集.NET內存分配數據和 對象生命週期的信息,瞭解內存 分配的應用程序使用的模式。
在谷歌搜索提供以下鏈接=>http://msdn.microsoft.com/en-us/library/ee815714.aspx。我能做些什麼來減少這個問題嗎?我似乎迷失在這裏。
雙擊錯誤列表窗口中的消息以導航到配置文件數據的標記視圖 。查找第0代的.NET CLR內存# 集合和第1代集合列的.NET CLR內存#。 確定是否有執行程序的特定階段,其中 垃圾收集更頻繁發生。將這些值 在GC列%時間,看是否託管內存 分配的格局造成過多的內存管理開銷。
要理解應用程序的管理內存使用模式,請使用 再次運行.NET內存分配概要文件並請求 對象生命週期測量。
有關如何提高垃圾收集性能的信息,請參閱 網站上的垃圾收集器基本知識和性能提示。有關自動垃圾收集開銷的信息,請參閱發現大對象堆。
也許你應該先告訴我們這是否是一個問題。正如錯誤所述,這可以在加載和緩衝大量數據的程序中自然發生。你完全沒有對此作出陳述 - 而且在你不瞭解你的計劃的情況下,我們幾乎沒有做出未受教育的猜測。 – TomTom 2012-03-07 06:58:00
嗯,他確實說應用程序遇到了性能問題,並且分析器建議這是潛在原因之一。我非常清楚地知道他在徵求建議,以便更好地理解建議,並確定這是否與他的申請有關。根本不是那麼糟糕的職位。 – Chris 2012-03-07 07:12:29
謝謝Chris,TomTom, 是的,我一直在尋找建議來解決這個性能問題。也許我應該更加明確。 – 2012-03-07 15:13:24