【发布时间】:2009-10-19 13:43:24
【问题描述】:
有人可以向我解释为什么最小化 Windows 应用程序会大大减少内存使用量吗?
例如,我运行 Visual Studio,在任务管理器中显示 800MB 内存使用情况,然后我最小化 Visual Studio 应用程序窗口,现在内存使用情况在任务管理器中仅显示 50MB。这似乎发生在所有 winforms 应用程序中。
【问题讨论】:
有人可以向我解释为什么最小化 Windows 应用程序会大大减少内存使用量吗?
例如,我运行 Visual Studio,在任务管理器中显示 800MB 内存使用情况,然后我最小化 Visual Studio 应用程序窗口,现在内存使用情况在任务管理器中仅显示 50MB。这似乎发生在所有 winforms 应用程序中。
【问题讨论】:
来自here:
任务管理器显示为应用程序的内存使用情况实际上是它的工作集。当应用程序最小化时,Windows 会修剪应用程序的工作集,这就是这个数字下降的原因。工作集并不能准确表示应用程序正在使用多少内存。
在 Windows Vista 中,微软修改了任务管理器,改为显示私有字节(这是一个更有用的数字),所以这种现象不再发生。
【讨论】:
应用程序在向系统返回内存方面不太积极是正常的。计算机不会因为有大量未使用的内存而运行得更快,因此最好将清理工作留到真正需要它之前。
当你最小化一个程序时,系统会向它发送一个信号,告诉它是时候向系统返回尽可能多的内存了,所以程序会进行垃圾回收并释放它可以释放的所有内存。
【讨论】: