Je continue, par rapport à mon post précédent
J'ai trouvé une commande Powershell permettant de cibler un processus et de modifier ses cores cpu affectés.
Code :
- $Process = Get-Process 3dsmax; $Process.ProcessorAffinity=13
|
13 étant 0001101 en binaire, donc les cores 1 - 3 - 4 sont actifs pour 3dsmax.
Jusque là, ca va.
Mes questions
- Par rapport à mon post précédent, la commande Powershell ne fonctionne que si il n'y a qu'un seul 3dsmax de lancé. Si j'ai 2 processus 3dsmax, ca ne marche plus. Il me dit que le paramètre ProcessorAffinity n'est pas trouvable.
Comment cibler tous les processus du même nom ?
- Plus complexe : Si je veux gérer les cores indépendamment, selon les T° que Speedfan m'envoi, il va me falloir interroger quels sont les cores actifs (avec Get-Process 3dsmax | Select-Object ProcessorAffinity).
Puis récupérer la valeur décimale, la convertir en binaire pour identifier les cores, stocker les états des cores pour ne changer que le core qui serai trop chaud.
Ensuite, manip inverse, reprendre le binaire en décimale, et l'attribuer au processus 3dsmax.
Bon, je sais pas si c'est très clair. Concrètement, lorsqu'un core devient trop chaud, il se désactive du processus sans modifier l'état des autres cores.
Lorsque que le core deviendra plus froid, j'envoi une autre commande pour le réactiver.
Comment stocker la valeur du get-process dans une variable ?
Comment mathématiquement gérer ma valeur d'affinité pour identifier les cores ?
Voilà, est-ce que quelqu'un pourrai m'orienter un peu.