À l'aide de l'Explorateur de processus de Sysinternals, existe-t-il une colonne qui peut être utilisée pour indiquer sur quel processeur un processus s'exécute? S'il n'y a pas de colonne, existe-t-il un autre moyen?
windows
cpu
process-explorer
rory.ap
la source
la source
Réponses:
Demandé en 2005 :
Pas de réponse.
Demandé en 2007 :
Pas de réponse.
Similaire discuté en 2013 :
Synopsis de base: Cela ne peut pas être fait.
Les threads sont ce qui est envoyé aux cœurs pour le traitement, pas les processus. La plupart des processus modernes ont plusieurs threads.
Si vous définissez manuellement l' affinité pour un processus, tous les threads du processus doivent rester sur un seul processeur. Puisque vous l'avez défini manuellement, vous devez savoir sur quel processeur il se trouve. ;)
Mais si vous ne le spécifiez pas, le ou les threads seront contrôlés par le système d'exploitation et le matériel de traitement sous-jacent, et passeraient d'un processeur à l'autre à une vitesse qui serait inaccessible et très probablement inexacte au moment où il a été affiché. vous.
Peut-être consultez ces questions SU pour plus:
De plus, à partir de StackOverflow:
Maintenant, si vous avez écrit le programme, vous pouvez utiliser le GetCurrentProcessorNumber , qui signale le processeur actuel utilisé par le thread à partir duquel la fonction a été appelée.
Son utilisation vous permettra de faire des estimations sur l'utilisation du processeur par vos threads, car vous ne pouvez jamais être sûr où les threads seront d'un cycle à l'autre (encore une fois, sauf si vous définissez l'affinité à dessein).
Plus d'informations:
la source
Cela peut être fait en capturant une trace xperf et en l'ouvrant avec Windows Performance Analyzer (WPA.exe) à partir de Windows Performance Toolkit, ici vous pouvez ajouter une colonne CPU pour voir quel CPU (Core) le processus est en cours d'exécution:
la source