Which one is correct?
Ambos, provavelmente.
Apesar da impressão que você obtém dos gráficos, o uso de recursos não é feito de forma contínua, mas em intervalos discretos. Então, o que está acontecendo aqui é que, em um ponto no tempo, o Gerenciador de Tarefas pesquisa as CPUs para uso e obtém sua resposta. Algum número de milissegundos depois, o Process Explorer pesquisa o uso da CPU e obtém uma resposta ligeiramente diferente.
Isso faz sentido, porque é a pesquisa em um tempo ligeiramente diferente, e ambas as medições são provavelmente precisas, apenas para intervalos ligeiramente diferentes. Podemos não notar uma diferença de tempo de 10 milissegundos, mas é muito tempo para o computador - um processador de 3.8Ghz pode processar 38 milhões de operações nesses 10 milissegundos que não conseguimos perceber. Aqui está uma postagem do blog ServerFault relacionada a como os intervalos de sondagem podem levar você a conclusões erradas .
Na verdade, não me surpreenderia se a razão pela qual o Process Explorer está vendo uma atividade menor que o Gerenciador de Tarefas não é, pois o Process Explorer está medindo o uso da CPU gerado pelo Task Explorer - a atividade de pesquisa, os cálculos relacionados e gráficos não são gratuitos e consomem recursos da CPU para processar.
Então, você tem duas coisas acontecendo aqui:
-
Você está medindo intervalos de tempo diferentes, o que pode ser imperceptivelmente pequeno para nós, mas na verdade são períodos relativamente longos de tempo para um computador, no qual muita atividade pode ocorrer, gerando medições diferentes e precisas.
-
A medição de recursos consome recursos, que podem ser detectados pelos quais o aplicativo recebe dados em segundo lugar. Muito parecido com o efeito do observador na mecânica quântica - o ato de observar ou medir um evento muda o evento - o ato de medir sua utilização de recursos utiliza os mesmos recursos que você está tentando medir.