Pergunta

O Gerenciador de tarefas do Windows mostra o uso da CPU em porcentagem. Qual é a fórmula por trás disso? Será isto:

uso% da CPU para o processo de A = (Soma de todas as fatias de tempo dado a uma até agora) / O tempo total desde que a máquina iniciada

Ou é outra coisa?

Foi útil?

Solução

Eu não estou 100% de certeza que é usos, mas eu acho que você está um pouco fora no cálculo CPU.

Eu acredito que eles estão fazendo algo parecido.

Process A CPU Usage = (Cycles for A over last X seconds)/(Total cycles for last X seconds)

Eu acredito que é amarrado ao conjunto "update intervalo" no gerenciador de tarefas.

Ao fazer um pouco de pesquisa para você embora eu achei artigo este MSDN que mostra a maneira recomendada microsoft de cálculo do tempo de CPU de um conjunto de instruções, isso pode apontar um pouco para seu cálculo também.

Outras dicas

Não, não é "desde o tempo de inicialização." - é muito mais do que isso sensível ao tempo

É "proporção de tempo durante o qual uma CPU estava funcionando ativamente um fio nesse processo desde a última atualização". (Onde a taxa de atualização é normalmente cerca de um segundo.) No Gerenciador de tarefas Penso que é então dividido pelo número de CPUs, por isso o total acaba sendo 100% (ou seja, em uma máquina dual core, um single-threaded porco CPU irá mostrar como 50%). Outros programas similares, por vezes, não faça isso, dando um total de 100% * núcleos.

Você também pode querer verificar este artigo como a forma como ciclos de CPU são tratados com relação ao agendamento foi alterado como parte do Vista. Presumo que isto também se aplica para Win7.

Veja o código-fonte do Gerenciador de tarefas

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top