Domanda

Il Task Manager di Windows mostra l'utilizzo della CPU in percentuale. Qual è la formula dietro questo? È questo:

  

% utilizzo CPU per processo A = (somma di   tutte le fasce orarie date ad A fino ad ora) /   Tempo totale dall'avvio della macchina

O è qualcos'altro?

È stato utile?

Soluzione

Non sono sicuro al 100% di ciò che viene utilizzato, ma penso che tu sia un po 'fuori nel calcolo della CPU.

Credo che stiano facendo qualcosa del genere.

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

Credo che sia legato all'intervallo di "aggiornamento" impostato in Task Manager.

Mentre facevo un po 'di ricerca per te, ho trovato questo articolo MSDN che mostra un metodo consigliato da Microsoft per calcolare il tempo della CPU di un set di istruzioni, questo potrebbe indirizzarti un po 'anche verso il loro calcolo.

Altri suggerimenti

No, non è " dal momento dell'avvio " - è molto più sensibile al tempo di quello.

È la "proporzione di tempo durante il quale una CPU ha eseguito attivamente un thread in quel processo dall'ultimo aggiornamento". (Dove la frequenza di aggiornamento è in genere di circa un secondo.) Nel Task Manager credo che sia quindi diviso per il numero di CPU, quindi il totale finisce per essere al 100% (cioè su una macchina dual core, un porco CPU single-thread mostrerà come 50%). Altri programmi simili a volte non lo fanno, fornendo un totale del 100% * core.

Puoi anche controllare questo articolo come il modo in cui vengono gestiti i cicli della CPU per quanto riguarda la pianificazione è stato modificato come parte di Vista. Presumo che questo vale anche per Win7.

Vedi il codice sorgente di Task Manager

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top