DA0026: Tempo di elaborazione CPU kernel eccessivo
ID regola |
TODO |
Category |
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.