我有一個C#winform應用程序。現在啓動後,顯示主屏幕時,我有大量的非託管內存大約110MB,整個管理內存大約爲20 MB。c#WinForm應用程序中的許多非託管內存
這裏有些東西,可能是不尋常的:
- 該應用程序包含許多組件,其在總98 MB的文件大小。
- 某些表單有一個wpfhost,但是這次加載(但可能是其他一些WPF框架庫)
- Ram似乎不會增長。
- 顯示了很多字符串,其中很多是WPF的一部分,如「邊距」
- 主窗體非常大,並且具有大約30行的infragistics數據存儲區。
當我在一個控制檯應用程序加載所有組件用Assembly.Load,他們只花了1 MB RAM的非託管的。
這個非託管內存從哪裏來? 有人可以給我一個暗示什麼樣的元素可以參與嗎?
堆分析器應該表現出這一點。你試過嗎?(MS有一個,我相信dotTrace,WinDbg和其他可能有類似的功能) – sehe 2013-04-22 07:43:42
現在你可以推薦一個嗎?我從來沒有這個頭。我只使用目前的螞蟻探查器。很久以前,我使用SOS和Windbg。你可以給我一些關於如何在.net中加載配置文件的資源嗎? – 2013-04-22 07:44:44
如果我記得這個名字,我會提到它。然而,'堆分析器.NET'是一個非常友好的Google術語。我認爲,這會花費更少的時間,而不是在評論中詢問我。 – sehe 2013-04-22 07:52:24