DA0026: Tiempo de procesamiento excesivo de la CPU de kernel
Identificador de regla |
TODO |
Categoría |
Uso de Herramientas de generación de perfiles |
Método de generación de perfiles |
Muestreo |
Mensaje |
Se midió un tiempo relativamente alto de CPU en modo kernel. Considere investigar el código fuente con el muestreo de llamadas del sistema habilitado. |
Tipo de regla |
Información |
Cuando genere perfiles usando métodos de muestreo, memoria de .NET o contención de recursos, debe recopilar al menos 10 muestras para desencadenar esta regla.
Causa
El tiempo de CPU proporcional ejecutado en modo kernel superó la cantidad de tiempo en modo usuario. Puede volver a generar los perfiles y realizar un muestreo del número de llamadas al sistema (syscalls) para determinar la causa de los altos tiempos de ejecución en modo kernel.
Descripción de la regla
La proporción de tiempo relativamente elevada que la aplicación invierte en la ejecución en modo kernel merece una mayor investigación. Una aplicación de modo usuario pasa al modo kernel para realizar las operaciones de entrada y salida, esperar las primitivas de sincronización del subproceso o proceso o realizar llamadas al sistema. Puede investigar los tipos de llamadas del sistema que la aplicación realiza y qué funciones son responsables de estas llamadas cuando selecciona la opción para recopilar pilas de llamadas de ejemplo basadas en las llamadas del sistema.
Cómo corregir infracciones
Para investigar los tipos de llamadas del sistema que la aplicación realiza, ejecute de nuevo el perfil y seleccione la opción para recopilar muestras basadas en las llamadas del sistema. Vea Cómo: Elegir eventos de muestreo para obtener más información si está ejecutando las herramientas de generación de perfiles en el IDE. Si está ejecutando las herramientas de generación de perfiles desde la línea de comandos, vea la sección Sampling Interval Options del tema VSPerfCmd en la referencia de las herramientas de línea de comandos de Herramientas de generación de perfiles.