2014-10-05 41 views
0

我不知道我是否發佈到正確的StackOverFlow論壇,但在這裏。堆生成2和大對象堆爬

我有一個C#桌面應用程序。它接收來自4個模擬攝像頭的圖像,並試圖檢測動作,如果有的話,它會保存它。

當我離開應用程序運行說24小時週期時,我注意到私人工作集在任務管理器中攀升了近500%。

現在,我知道使用任務管理器不是一個好主意,但它確實給了我一個指示,看看是否有問題。

爲此,我從JetBrains購買了dotMemory分析器。

我已經使用它的工具來確定Heap Generation 2的大小增加了很多。然後在較小程度上,大對象堆也是如此。

後者是一個驚喜,因爲圖像大小是360x238,字節數組的大小總是小於20K。

所以,我的問題是:

我應該明確地調用GC.Collect(2)的實例? 我是否應該擔心我的應用程序對此負有責任?

回答

2

Andrew,我的建議是在dotMemory中獲取內存快照,而不是探索它來找到保留大部分內存的東西。 This video會幫助你。如果你不確定GC.Collect,你可以點擊「強制GC」按鈕,它會收集你的應用程序中的所有可用垃圾。 enter image description here

+0

嗨,是的,我做了部隊GC,它沒有任何影響,這是不可思議的,因爲它應該強迫它下來我會想?現在就看視頻。謝謝:) – 2014-10-05 16:56:09

+0

良好的信息:) :) – 2014-10-05 17:07:59