9 votes

Quel type de "messages" le moniteur d'activité suit-il avec les colonnes "Messages envoyés" et "Messages reçus" ?

Dans Activity Monitor sous OS X, il est possible d'ajouter des colonnes supplémentaires à la vue de la liste des processus. Les deux colonnes disponibles dans cette liste sont "Messages envoyés" et "Messages reçus", qui s'affichent respectivement comme "Msgs envoyés" et "Msgs reçus". Témoin :

Portion of Activity Monitor window showing "Sent Msgs" and "Rcvd Msgs" columns

À quel type de "messages" le moniteur d'activité fait-il référence ?

Lorsque j'ai vu "message", j'ai tout d'abord pensé aux "messages" Objective-C qui sont distribués avec la fonction objc_msgSend() mais je ne vois pas comment ces messages pourraient être suivis par le système d'exploitation puisque la plupart de ces messages sont internes au processus lui-même. Un débogueur pourrait suivre ces types de messages lorsqu'ils sont attachés, mais je ne vois pas comment le système d'exploitation pourrait le faire tout le temps - une surcharge très élevée.

Je suppose donc que ce sont des messages plus lourds. Sont-ils une forme de RPC entre processus ? Ou bien, ces messages sont-ils des appels de l'utilisateur vers le noyau ? Je cherche des références définitives. Merci.

7voto

Oskar Points 1242

Ces chiffres correspondent au nombre de messages entrants/sortants de Mach, donc vous semblez avoir raison de ne pas les interpréter comme le nombre d'objc_msgSend.

Vous pouvez en apprendre davantage sur le comptage des messages de niveau supérieur en lançant Instruments (qui fait partie de l'application téléchargeable gratuitement Outils Xcode ) et de fouiller dans une application spécifique pour voir quels messages sont envoyés et quand.

Xcode Instruments screen shot

Il peut filtrer toutes les allocations ainsi que les allocations relatives à ObjC et vous pouvez creuser dans des détails beaucoup plus bas que le simple nombre d'envois de messages. La documentation canonique qui fait partie de Xcode vous aidera à comprendre ces statistiques et comment elles sont liées à Activity Monitor.

Plus précisément, recherchez NSObjCMessageLoggingEnabled y objc_msgSend dans la partie Mac OS X Debugging Magic - Tools Guide de la documentation de référence pour accéder aux comptes objC.

Recherche de mach message dans Xcode et recherchez la section IPC/Message Queues de l'interface utilisateur. Guide de programmation du noyau pour les détails des files d'attente de messages et leur composition. Il s'agit d'un trafic de noyau IPC de niveau inférieur, comme vous l'avez supposé.

Vous pouvez probablement la trouver aussi sur developer.apple.com, mais le fait d'avoir la documentation en local depuis Xcode présente de nombreux avantages.

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X