当前位置:  开发笔记 > 编程语言 > 正文

如何减少WPF应用程序的内存使用量

如何解决《如何减少WPF应用程序的内存使用量》经验,为你挑选了2个好方法。

我正在使用WPF编写一个用C#编写的小书签管理应用程序.它只是位于系统托盘中,99%的时间处于空闲状态.最近我查看了任务管理器,发现它使用了大约25兆内存(并且在第一次激活之前大约12兆),我认为这对于一个大多数时间都没有做任何事情的应用来说有点多.这让我想知道是否有任何方法可以减少内存使用量,例如,禁用可选的WPF功能.

我发现了一个可能导致某些事情的事实,尽管我不知道如何利用它..NET中的线程每个大约需要1兆,而事实证明我的应用程序使用了大约6/12个线程(第一次激活之前和之后).这占我的内存使用量的一半,这是非常重要的.我不直接生成任何新线程,但我不知道WPF以及.NET的其他部分如何将线程用于不同的任务,所以我发现很难对它做任何事情.使用事件来处理与GUI没有直接关系的东西,这会产生新的线程吗?

所以我想我的问题是双重的,你如何减少.NET/WPF应用程序的内存使用量,如何最小化生成的线程数?请注意,我不是在考虑这些答案中提到的小细节,而是考虑如何在整个应用程序中设计低内存使用率.



1> Rob..:

不幸的是,根据我的经验,大约25MB是我见过的最小的WPF应用程序,至少在Windows XP上.我认为即使是空模板WPF应用也需要大约20MB.你在运行什么操作系统?

Windows Vista是一个更好的故事,你可以期望看到一个空模板WPF应用程序大约13-15MB.

对于你的应用程序使用6-12个线程,只使用~25MB,我会说你做得很好.:-)



2> Roger Lipsco..:

如果它是一个系统托盘应用程序,您可以在WinForms(甚至C++)中实现该程序的那部分,并且只有当用户双击您的图标时才会生成WPF应用程序.这样,您只需在实际使用时支付内存.

推荐阅读
谢谢巷议
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有