窗口是否将可用内存最小化?


13

最终用户看不到未显示的最大化窗口和最小化窗口。未显示是指由活动窗口覆盖的非活动最大化窗口。

但是有一个区别-在应用程序切换服务中,如Compiz一样明显:窗口管理器“知道”最大化的窗口外观(因此它可以产生缩略图),而最小化的窗口由图标表示。仅(不计算窗口的外观/内容)。

那么这是否意味着在最小化窗口时释放了内存?内存对WM可以最大化的窗口数有限制吗?如果有这样的限制,那么它是实质性/相关性吗?

想象一个不允许最小化的WM(只能在最大化的窗口之间切换):由于内存使用情况,此WM是否会对终端用户施加相当大的限制?

感谢您解决此问题---我可能有一个错误的主意。

Answers:


10

最小化窗口可能会释放一点内存,但这取决于应用程序,并且不会占太多。无论如何,最小化不会比任何其他形式的隐藏有更多的不同。

即使将应用程序的窗口最小化,它仍在运行。该应用程序不需要仅将其窗口之一最小化而在内存中保留较少的数据。

只要最小化或还原了一个窗口,就会通知该应用程序。每当其窗口的一部分变得可见或隐藏时,也会收到通知。该应用程序可能会(但不太可能)因其窗口被隐藏的各种原因而做出不同的反应:

  • 可以将其最小化,这意味着不显示窗口,而在其位置显示图标。
  • 它可以隐藏在其他窗口(包括屏幕保护程序的全屏窗口)后面。
  • 它可以显示在不同的桌面,工作空间,视口或您的窗口管理器所称呼的任何位置上。
  • 可以用其他方式将其隐藏,例如“阴影”(意味着仅显示标题栏),或者简单地将其取消映射(意味着窗口管理器已出于任何原因决定了不应显示窗口)。

如果应用程序的窗口被完全隐藏,则该应用程序不需要刷新窗口内容。如果需要分配内存以刷新该内容,则在隐藏窗口时不会这样做。此外,如果隐藏了窗口(出于任何原因),则应用程序可能会释放X服务器内部的少量内存。

实际上,与众不同的是,如果未显示窗口,则应用程序不会进行计算以重绘内容,因此可以交换出绘制内容所需的数据。如果RAM太紧并且有一个窗口您暂时不会使用,那么最好不要映射窗口。同样,不映射窗口(隐藏在其他窗口之后,最小化,阴影等等)的原因并不重要。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.