jao*_*jao 94 windows-7 performance resources
当程序在 Windows 7 中最小化时,它们使用的内存和 CPU 是否比保持最大化时少?
kin*_*juf 67
是的。根据 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
Run Code Online (Sandbox Code Playgroud)
这是在 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
Run Code Online (Sandbox Code Playgroud)
Tim*_*ham 28
是和否。它们将在您的 GPU 上使用更少的资源——更少需要屏幕刷新——但不会在您的主系统内存或 CPU 上使用。
任务管理器中显示的工作集大小不是应用程序消耗的实际内存量。它更像是在给定时间点可以使用多少的上限。
如果另一个应用程序请求分配给一个未处于活动状态的进程的工作集的内存,则可以在不更改应用程序实际使用的内存量的情况下降低此数字。
这实际上取决于您所讨论的应用程序以及应用程序的编码方式;然而,为了进行比较,我们假设程序的编码方式是在最大化和最小化时运行相同的函数。
因此,如果应用程序调用相同的底层函数,我们希望程序在最小化时使用相同数量的 CPU。
然而,当程序最小化时,您的系统进程肯定会使用更少的 CPU,因为用于应用程序查看的图形将减少,现在可能只是一个系统托盘图标。
也就是说,除非在最小化应用程序时导致更多图形应用程序进入视图并因此进行渲染,否则现在 CPU 负载可能会由于额外的图形工作负载而增加。
总而言之,除非您使用的是规格非常低的机器,否则我们在这里讨论的所有更改可能可以忽略不计。