OS X : Qu’est-ce que le processus WindowServer et qu’est-ce que cela signifie lorsqu’il prend un CPU élevé ?


WindowServer est principalement un moteur de composition, et gère également les canevas.

Un canevas est essentiellement une région rectangulaire qui agit comme un tampon de trame de doublure et fournit votre capacité à voir une fenêtre d'application.


En plus de faire ces tâches, il gère également les pipelines OpenGL vers le matériel vidéo, qui est ensuite utilisé pour rendre des choses comme les fenêtres de jeu, la vidéo, les publicités dans les fenêtres de navigateur, etc.

Il est possible qu'il prenne beaucoup de CPU dans ce rôle car, contrairement à DirectX sous Windows, qui émulait le GL après s'être engagé dans le loop unrolling pour s'assurer que les shaders ne tourneront pas éternellement en prenant du temps CPU, macOS se contente de bourrer les données GL dans l'un des canaux du pipeline, et de demander au matériel de les rendre.

À cause de cela, les shaders mal écrits peuvent finir par prendre beaucoup de CPU, alors que sur Windows DirectX, le déroulement de la boucle aurait simplement "échoué" et aurait été déposé sur le sol sans être rendu.

Certains des shaders originaux du moteur "Unreal" pour les effets de brouillard avaient ce problème, et certains des World Of Warcraft de Blizzard avaient de même quelques problèmes.

WOW, en particulier, était un problème - j'étais là pendant que Mike Smith, l'un des ingénieurs d'Apple chargé de faire en sorte que le jeu ne se bloque pas après un certain temps - a découvert que le problème était que certains shaders s'exécutaient simplement à l'infini, et quand vous remplissiez tous les canaux GL vers la carte nVidia, alors c'était fini - le bureau se bloquait.

Ce problème est moins fréquent de nos jours.

Je suggérerais de sauvegarder tout ce que vous avez en attente, et de tuer tous vos processus "Google Chrome Helper", et voir si cela aide.

Si vous avez beaucoup de fenêtres ouvertes avec de la publicité ou des vidéos en cours, Chrome a tendance à manger beaucoup, beaucoup de mémoire.

Il a également un certain nombre de bugs qui font qu'il ne "récolte" pas les DOM inutilisés, donc même s'ils ne sont en théorie pas référencés, ils vont traîner et prendre du CPU et de la mémoire de toute façon.

Quelqu'un devrait vraiment s'asseoir et les corriger.

P.S. : Si vous avez tendance à regarder des vidéos sur des sites pirates, vous pouvez également avoir beaucoup de CPU mangé par des "mineurs de pièces" téléchargés en drive-by, qui sont également écrits en GL. Envisagez l'installation d'un "bloqueur de mineurs" comme extension de navigateur.

Il est possible d'installer un "bloqueur de mineurs" comme extension de navigateur.