我正在使用WPF編寫一個使用C#編寫的書籤管理應用程序。它只是坐在系統托盤中,並在99%的時間內處於空閒狀態。最近,我查看了任務管理器,發現它使用了大約25兆內存(並且在第一次激活之前大約有12兆),我認爲這對於大多數時間什麼都不做的應用程序來說有點多。這讓我想知道是否有任何方法來減少內存使用量,例如禁用可選的WPF功能。如何減少WPF應用程序的內存使用量
我發現了一個可能導致某些事實的事實,但我不知道有什麼方法來利用它。 .NET中的線程每個需要大約一個兆字節,事實證明,我的應用程序使用大約6/12個線程(第一次激活之前和之後)。這佔我內存使用的一半,這是相當重要的。我沒有直接產生任何新線程,但我不知道WPF以及.NET的其他部分如何使用線程執行不同的任務,所以我很難對它做任何事情。將事件用於與GUI沒有直接關係的東西,這是否會產生新的線程?
所以我想我的問題是雙重的,你怎麼能減少一般的內存使用.NET/WPF應用程序,以及如何最小化產生的線程數量?請注意,我並不是在考慮諸如this answer中提到的那些小細節,而是如何設計整個應用程序中的低內存使用率。
我正在運行Vista 64位。說實話,這並不是我太擔心的事情。我的意思是,以當前的硬件價格,內存幾乎是免費的 - 將我的程序的每個副本與2GB內存條捆綁在一起幾乎是可行的;) – 2008-12-23 15:18:07