Condividi tramite


DA0026: Tempo di elaborazione CPU kernel eccessivo

ID regola

TODO

Categoria

Utilizzo di strumenti di profilatura

Metodo di profilatura

Campionamento

Messaggio

È stato rilevato un elevato livello di tempo CPU in modalità kernel. Per determinare la causa, abilitare il campionamento SysCall.

Tipo regola

Informazioni

Quando si esegue la profilatura tramite i metodi di campionamento, memoria .NET o conflitto di risorse, è necessario raccogliere almeno 10 campioni per attivare questa regola.

Causa

Il tempo CPU proporzionale eseguito in modalità kernel ha superato la quantità di tempo trascorso in modalità utente. Per determinare la causa degli elevati tempi di esecuzione in modalità kernel, eseguire di nuovo la profilatura e abilitare al campionamento del numero di chiamate di sistema (syscalls).

Descrizione della regola

La percentuale relativamente elevata del tempo impiegato dall'applicazione in modalità kernel può giustificare l'esecuzione di ulteriori analisi. Un'applicazione in modalità utente passa alla modalità kernel per eseguire operazioni di I/O, per attendere primitive di sincronizzazione di thread o processi o per eseguire chiamate di sistema. È possibile analizzare i tipi di chiamate di sistema effettuati dall'applicazione e le funzioni responsabili di tali chiamate selezionando l'opzione per raccogliere stack di chiamate campione in base alle chiamate di sistema.

Come correggere le violazioni

Per analizzare i tipi di chiamate di sistema effettuati dall'applicazione, eseguire nuovamente il profilo e selezionare l'opzione per raccogliere campioni in base alle chiamate al sistema. Se si eseguono gli strumenti di profilatura nell'IDE, vedere Procedura: scegliere eventi di campionamento per ulteriori informazioni. Se si eseguono gli strumenti di profilatura dalla riga di comando, vedere la sezione Sampling Interval Options dell'argomento VSPerfCmd nei riferimenti agli strumenti di profilatura della riga di comando.