Question

Je fais une analyse d'une application multi-threadée à l'aide des outils d'Instruments Apple, qui donnent beaucoup d'informations que j'essaie de comprendre.J'essaie de trouver une bonne ressource pour décrire les états de fil qui sont codés par couleur dans l'outil.Je regarde dans la documentation et les livres de Xnu Kernel, mais sans chance.

Il y a beaucoup de jaune et de violet qui correspondent aux modes "préemptés" et "superviseurs" (la carte de couleur complète est décrite dans la fenêtre supérieure droite dans l'image ci-jointe).Étant donné que je passe tellement de temps dans ces États par opposition à l'État "en cours" (en bleu), je serais particulièrement intéressé à savoir ce qu'ils font référence à ce qu'ils font référence à et si cela est possible / souhaitable de minimiser le temps passé dans ces états.

Entrez la description de l'image ici

Était-ce utile?

La solution

préempté= votre fil a été exécutable et était prêt, prêt et capable d'exécuter, mais a été expulsé (contexte commuté) en faveur d'un autre fil. Cela signifie que votre fil ne dormait pas sur des E / S ou un événement, et faisait réellement quelque chose de processeur intensif. En raison de l'expiration quantique ou d'un autre fil de priorité accrue, cependant, il a été contraint de sortir de la CPU.

superviseur= Votre thread était en mode noyau. Habituellement, cela signifie que le noyau conserve un appel système fait par votre fil.

aucun d'eux n'est strictement mauvais, mais:

Éviter la préemption: Pas grand chose que vous puissiez faire ici, en plus de jouer avec votre priorité - augmentez votre priorité en utilisant une valeur négative de la valeur, ou directement, à l'aide de l'API de SETPRIORITY. Vous pouvez également utiliser des stratégies de planification pour augmenter la préférence de votre thread et Cajole le planificateur de Mach (le décideur sous-jacent de threads) pour mettre vos threads en premier et leur donner plus de temps de processeur.

Éviter le mode superviseur: vous pourriez être lourd sur les appels système. Encore une fois, ce n'est pas nécessairement une mauvaise chose.

J'espère que cela aide,

TG

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top