我正在使用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