La fenêtre minimise-t-elle l'utilisation de la mémoire libre?

13

La fenêtre maximisée non affichée et la fenêtre minimisée sont invisibles pour l'utilisateur final. Par non affiché, je veux dire une fenêtre maximisée inactive couverte par la fenêtre active.

Il existe cependant une différence --- qui devient évidente dans les services de changement d'application, comme avec Compiz: l'apparence de la fenêtre maximisée est "connue" du gestionnaire de fenêtres (donc elle peut produire une miniature), tandis que la fenêtre minimisée est représentée par une icône uniquement (l'apparence / le contenu de la fenêtre n'est pas calculé).

Cela signifie-t-il donc que la mémoire est libérée lorsqu'une fenêtre est minimisée? Y a-t-il une limite imposée par la mémoire au nombre de fenêtres qu'une WM peut avoir maximisé? S'il existe une telle limitation, est-elle substantielle / pertinente?

Imaginez une WM qui ne permet pas de minimiser (mais simplement de basculer entre des fenêtres maximisées): cette WM imposerait-elle des limitations considérables à l'utilisateur final en raison de l'utilisation de la mémoire?

Merci d'avoir clarifié cela --- J'ai peut-être une mauvaise idée.

Benjamin
la source

Réponses:

10

Réduire une fenêtre peut libérer un peu de mémoire, mais cela dépend de l'application, et ce ne sera pas beaucoup. Dans tous les cas, la minimisation ne fera pas plus de différence que toute autre forme de dissimulation.

Même si la fenêtre d'une application est réduite, elle est toujours en cours d'exécution. L'application n'aura pas besoin de conserver moins de données en mémoire simplement parce que l'une de ses fenêtres est minimisée.

Une application est avertie chaque fois qu'une de ses fenêtres est réduite ou restaurée. Il est également averti chaque fois qu'une partie de sa fenêtre devient visible ou masquée. Il est possible, mais peu probable, que l'application réagisse différemment à diverses raisons pour lesquelles sa fenêtre peut être masquée:

  • Il peut être minimisé, ce qui signifie que la fenêtre n'est pas affichée et qu'une icône est affichée à sa place.
  • Il peut être caché derrière d'autres fenêtres (y compris la fenêtre plein écran d'un économiseur d'écran).
  • Il peut être affiché sur un bureau, un espace de travail, une fenêtre ou tout autre nom que votre gestionnaire de fenêtres appelle.
  • Il peut être masqué d'une autre manière, par exemple «ombré» (ce qui signifie que seule une barre de titre est affichée), ou simplement non mappé (ce qui signifie que le gestionnaire de fenêtres a décidé pour une raison quelconque que la fenêtre ne devrait pas être affichée).

Si la fenêtre d'une application est complètement masquée, l'application n'a pas besoin d'actualiser le contenu de la fenêtre. S'il a besoin d'allouer de la mémoire pour actualiser ce contenu, il ne le fera pas tant que la fenêtre sera masquée. De plus, si une fenêtre est masquée (pour une raison quelconque), l'application peut libérer un peu de mémoire à l'intérieur du serveur X.

Ce qui fait plus de différence dans la pratique, c'est que si une fenêtre n'est pas affichée, l'application ne fait pas de calculs pour redessiner le contenu, et donc les données nécessaires pour dessiner le contenu peuvent être échangées. Si la RAM est serrée et qu'il y a une fenêtre avec laquelle vous n'allez pas agir pendant un certain temps, il vaut mieux que la fenêtre ne soit pas mappée. Encore une fois, la raison pour laquelle la fenêtre n'est pas mappée (cachée derrière les autres, minimisée, ombrée,…) est sans importance.

Gilles 'SO- arrête d'être méchant'
la source