Question

Y at-il une API Windows ou tout autre moyen de déterminer sur quel processeur physique / core mes intensit de fil? Je ne suis pas besoin de cette information. Je suis juste curieux.

Je ne suis pas intéressé par les processeurs le fil est autorisé à exécuter. Je voudrais savoir exactement de quoi il se dirige actuellement. Je sais que les fils passent assez rapidement de l'un à l'autre ...

Était-ce utile?

La solution

Fils basculeront souvent d'un processeur à, donc il est un peu vide de sens, mais vous pouvez utiliser GetCurrentProcessorNumber .

Comme d'autres l'ont dit, vous pouvez utiliser GetProcessAffinityMask ou GetThreadIdealProcessor, mais ceux qui ne fonctionnera que si vous avez déjà défini un masque d'affinité ou processeur idéal pour le fil.

Autres conseils

Vous pouvez interroger l'affinité du processeur avec GetProcessAffinityMask . Si vous n'avez pas défini l'affinité du processeur, je ne suis pas sûr comment le résultat sera utile si, comme le fil peut voltiger entre les processeurs.

Pour contrôler le processeur de votre processus ou thread fonctionne sur l'utilisation de l'API Windows, vous pouvez utiliser ou href="http://msdn.microsoft.com/en-us/library/ms686223(VS.85).aspx" rel="nofollow noreferrer"> SetProcessAffinityMask .

Ces travaux en réglant les bits dans un masque de bits, où chaque bit représente un processeur votre fil ou processus peut être programmé pour:

BOOL WINAPI SetProcessAffinityMask(
  __in  HANDLE hProcess,
  __in  DWORD_PTR dwProcessAffinityMask
);

GetProcessAffinityMask pour découvrir quels processeurs sont disponibles pour une utilisation dans ces appels.

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