在 Windows 7 中,当程序最小化时,它们是否比最大化时占用更少的内存和 CPU?
答案1
是的。据 MS 支持人员称,最小化应用程序的工作集被精简。您可以使用 Process Explorer 自行检查。
这是在 Windows 7 x64 上对 Firefox 5.0 的一个实例进行的测试,其中加载了 ESPN.com 网站的单个选项卡。使用任务管理器读取值。
type not minimised minimised diff
------------------------------------------------------
working set 165,752k 163,768k -1,984k
peak working set 169,624k 169,624k N/A
mem (private working set) 121,600k 119,576k -2,024k
commit size 135,576k 133,504k -72k
paged pool 396k 397k +1k
np pool 82k 81k -1k
handles 504 483 -21
threads 34 31 -3
user objects 40 44 +4
GDI objects 71 75 +4
这是在 Windows 7 x64 上对 Paint.NET 的一个实例进行的测试,其中打开了一些小图像。此应用程序是用 Microsoft .NET 编写的,而 Firefox 几乎肯定是用 C/C++ 编写的。
type not minimised minimised diff
------------------------------------------------------
working set 125,904k 125,256k -684k
peak working set 217,836k 217,836k N/A
mem (private working set) 61,844k 61,844k 0k
commit size 102,388k 102,384k -4k
paged pool 542k 541k -1k
np pool 59k 59k 0k
handles 741 741 0
threads 19 19 0
user objects 276 273 -3
GDI objects 489 491 +2
答案2
是也不是。它们会占用较少的 GPU 资源(屏幕刷新需求较少),但不占用主系统内存或 CPU 资源。
任务管理器中显示的工作集大小为不是应用程序实际消耗的内存量。它更像是在给定时间点可以使用的内存上限。
如果另一个应用程序请求分配给一个进程的工作集的内存,而该内存并未处于活动使用状态,则可以降低该数字,而不会改变应用程序实际使用的内存量。
答案3
“工作集”与“内存使用情况”不同
如果一个程序需要一块内存,它就永远需要它。如果不需要,那就不需要。最小化程序不会突然使程序“不需要”内存。“修剪”工作集很简单分页来自的记忆物理内存到磁盘或者如果该页面在磁盘的其他地方可用,则直接删除该页面。(在后一种情况下,操作系统会执行反正如果内存不足,那么这只是一个缓存问题,而不是“使用”问题。)无论哪种情况,它确实不是减少程序的使用;它只是搬迁其他地方的数据。
话虽如此,关于 CPU 使用率:有一种东西叫做优先级提升在某些情况下,操作系统会给出警告,这确实会导致前台应用程序使用更多的 CPU。请参阅这里了解详情。
答案4
很少。对于识别何时最小化的交互式程序,确实会消耗更少的 CPU 电量。对于 Microsoft Word 等程序,CPU 使用率不会降低。
对于图形密集型应用程序(例如魔兽世界或使命召唤 3),GPU(图形处理单元)的使用率会显著下降。