La définition de l'affinité fait quelque chose, mais vous ne voudrez plus jamais l'utiliser.
La définition de l'affinité CPU oblige Windows à n'utiliser que le CPU (ou les cœurs) sélectionné. Si vous définissez l'affinité sur un seul processeur, Windows exécutera uniquement cette application sur ce processeur, jamais sur aucun autre.
Windows place automatiquement les applications exécutées sur le processeur le moins occupé, donc le limiter à un seul processeur ne permet pas à Windows de faire son travail. Même si CPU / core 1 est occupé à exécuter d'autres applications, Windows ne pourra pas exécuter une application avec une affinité définie sur CPU / Core 2.
Vraiment, la seule raison pour laquelle vous voudriez le faire est d'exécuter une ancienne application qui ne fonctionne pas correctement lors de l'exécution sur un système multi-CPU / Core.
La définition de l'affinité indique à ce processus sur quels processeurs il est autorisé à s'exécuter.
Bien que très utile pour certains cas de niche, l'utilisateur moyen ne devrait probablement pas jouer avec.
Par exemple, si un processus était autorisé à exécuter son propre noyau, il pourrait s'exécuter en (presque) temps réel sans que ces 70 utilitaires Windows interrompent et échangent constamment la pile sur le processeur pour leur propre tranche de temps. Les applications en temps réel étaient quelque chose que Windows ne pourrait jamais faire avant que les systèmes multiprocesseurs / multicœurs n'entrent en scène, car le système d'exploitation interromprait / commutait constamment l'application pour ses propres besoins. Cela peut maintenant être principalement surmonté en isolant l'application en temps réel d'un processeur tout en empêchant toutes les autres applications du système d'utiliser ce processeur. C'est un sujet très spécifique, mais des systèmes tels que les simulateurs de vol (réels), l'automatisation en usine et les systèmes de rétroaction des commandes dépendent de l'architecture en temps réel pour fonctionner.
Les applications gourmandes en processeurs (comme les machines virtuelles) peuvent être isolées dans leur propre cœur afin que vous puissiez les utiliser sans analyser le reste de votre système. En théorie, un hyperviseur fonctionnant sur un processeur prenant en charge l'interaction hyperviseur nu peut atteindre des performances de processeur égales à un système d'exploitation indépendant s'exécutant seul (moins le processeur nécessaire pour exécuter le système d'exploitation hôte). Bien sûr, dans la pratique, même une machine virtuelle fonctionnant sur son propre cœur / processeur isolé devra toujours accepter une petite quantité de surcharge de l'hôte du système d'exploitation hôte.
Pour les applications qui gèrent une grande quantité de données en flux, l'isolement de l'application sur son propre processeur (et potentiellement en utilisant toujours plusieurs cœurs) réduira l'échange de cache.
Les applications plus anciennes qui se cassent lorsqu'elles sont réparties sur plusieurs processeurs peuvent effectivement être limitées à un cœur / processeur pour résoudre le problème.
Si vous faisiez des mesures de performances sur une application spécifique, il est presque impossible d'obtenir des résultats cohérents sur différents systèmes, sauf si vous pouvez isoler le processus car, sinon, vous n'avez aucun contrôle sur le temps que le système d'exploitation donne à votre application. La plupart des gens conviennent que la mesure des performances d'exécution ne donne pas de bons résultats, mais ces personnes n'ont jamais considéré que l'intervention du système d'exploitation (qui rend les résultats si incohérents) peut être limitée en utilisant l'affinité.
Il existe de nombreux cas où l'affinité est vitale, mais si vous ne savez pas ce que c'est, vous n'en aurez probablement pas besoin.
la source
Il s'agit d'une fonctionnalité très utile dans certains scénarios. Supposons que vous ayez une application multithread qui a tendance à être inactive ou à saisir agressivement 100% de chaque CPU pendant plusieurs minutes, faisant des recherches, des builds, etc. Appelons cette application "éclipse".
Disons également que pendant que vous travaillez sur cette application, vous avez un tas d'autres applications qui ont des exigences de processeur modestes, mais sont essentiellement des applications en temps réel. Par exemple, pendant que vous utilisez Eclipse et qu'il lance des builds au hasard ou effectue des compilations gwt, vous utilisez également votre ordinateur pour diffuser de la musique ou effectuer des recherches dans une fenêtre de navigateur (par exemple, rechercher la cause d'un problème de build) . Bien sûr, vous ne mourrez pas si votre musique saute ou si votre navigateur cesse de répondre, mais c'est ennuyeux.
Ce que l'affinité vous permet de limiter votre application de restauration de processeur à 7/8 cœurs afin que tout le monde ait un accès garanti à un processeur relativement inutilisé et que vous n'ayez pas constamment à faire face au bégaiement et aux interruptions de l'utilisation de tout le reste sur votre ordinateur tandis que l'éclipse s'effrite.
la source
Une priorité plus élevée signifie que le traitement d'une tâche sera avantagé par rapport aux tâches de faible priorité. Si vous exécutez une application dont vous avez besoin pour être très réactif, et un tas d'autres processus non interactifs par exemple, les priorités peuvent garantir une meilleure expérience avec votre processus hautement prioritaire.
Par exemple: depuis Windows Vista, Windows Media Player obtient automatiquement une priorité plus élevée pour assurer une lecture fluide et continue des fichiers multimédias, avec seulement environ 20% du temps CPU disponible pour les autres processus par défaut. Ceci est juste un exemple pour vous aider à comprendre quelles sont les priorités. (Vous pouvez en savoir plus sur les priorités du lecteur multimédia dans Vista sur Technet .)
Une affinité douce ou dure peut augmenter la vitesse de traitement car le cache du processeur peut toujours contenir des restes du processus lorsqu'un processus a été précédemment interrompu, puis repris ultérieurement.
la source
Un exemple parfait de ceci est les anciens jeux informatiques (ou autres logiciels), en particulier lorsque les jeux (applications) 32 bits sont émulés sur un ordinateur 64 bits moderne. En définissant l'affinité pour les anciens jeux en les limitant à seulement quatre cœurs, les plantages peuvent souvent être évités pour permettre aux jeux stubburn de démarrer. Certains moteurs de rendu utilisés par les anciens jeux, les éditeurs vidéo et les logiciels graphiques accélérés par le matériel ou les logiciels de CAO ne comprennent pas plus de quatre cœurs de processeur et se bloqueront lorsqu'ils seront lancés.
Je ne crée pas de compte juste pour poster ceci, pour me trouver google 'kieseyhow'
la source