Comment puis-je définir définitivement l'affinité d'un processus?

J'ai un jeu qui a des problèmes avec l'utilisation du processeur, donc l'une des corrections est de désactiver un noyau à partir d'un processeur quad core. Étant donné que chaque fois que je lancer le jeu, je dois entrer manuellement dans le Gestionnaire des tâches et saisir manuellement l'affinité, ce qui suce depuis que le jeu est nouvellement lancé et est toujours sujet à des collisions fréquentes.

Existe-t-il une solution NON SOFTWARE?

J'ai cherché des solutions en ligne et elles semblent uniquement orientées vers Windows 7. Existe-t-il une solution pour les utilisateurs de Windows 8.1 comme moi?

Vous pouvez créer un raccourci pour attribuer l'affinité.

X:\Windows\System32\cmd.exe /C start /affinity Y game.exe 

Y est hexadécimal et est un peu masque:

 0x1 - 0001 - Core0 0x2 - 0010 - Core1 0x3 - 0011 - Core1 & Core0 0x4 - 0100 - Core2 0x5 - 0101 - Core2 & Core0 0x6 - 0110 - Core2 & Core1 0x7 - 0111 - Core2 & Core1 & Core0 0x8 - 1000 - Core3 0x9 - 1001 - Core3 & Core0 0xA - 1010 - Core3 & Core1 0xB - 1011 - Core3 & Core1 & Core0 0xC - 1100 - Core3 & Core2 0xD - 1101 - Core3 & Core2 & Core0 0xE - 1110 - Core3 & Core2 & Core1 0xF - 1111 - Core3 & Core2 & Core1 & Core0 

Si par "non logiciel" vous voulez dire ne pas nécessiter de logiciel supplémentaire, il existe. Vous pouvez exécuter le programme à partir d'un script de commande et utiliser le commutateur d'affinité "Start /AFFINITY 20 process.exe"

/AFFINITY 20 traite le 20 comme un nombre hexadécimal, avec un équivalent binaire de 100000 , qui définit l'affinité au noyau 5 sur 0-5 sur un processeur 6 core. Un masque hexagonal similaire vous permettra de désactiver un noyau spécifique, tel que E , qui n'exécute que le processus sur les noyaux 1-3 sur 0-3 ou 0-5.

Pour quelqu'un d'autre cherchant des réponses à cela et ne pas en trouver, la solution que j'ai trouvée était d'utiliser une application appelée WinAFC (ou AffinityChanger). Il s'agit d'une interface graphique partielle, une application de ligne de commande partielle qui vous permet de spécifier des profils pour certains exécutables, et vous interrogez la liste de processus pour eux. S'il trouve des processus d'appariement, cela modifiera l'affinité de ces processus en fonction des paramètres du profil chargé.

Il y a une documentation ici: http://affinitychanger.sourceforge.net/

Pour mes besoins, j'ai créé un profil qui ressemblait à ceci:

 TestMode = 0 TimeInterval = 1 *\convert.exe := PAIR0+PAIR1 

Ce profil définit tout processus convert.exe pour utiliser les deux premières paires de noyaux de CPU (CPU0, CPU1, CPU2 et CPU3), les interrogations toutes les secondes. TestMode est un TestMode qui vous permet de voir si votre profil fonctionne sans vraiment définir d'affinités.

Espérons que quelqu'un trouve cela utile!