Pregunta

Estoy haciendo algún análisis de una aplicación multi-roscada utilizando las herramientas de Apple Instruments, que le dan mucha información que estoy tratando de tener sentido.Estoy tratando de encontrar un buen recurso para describir los estados del hilo que están codificados por colores en la herramienta.He estado buscando la documentación de Xnu Kernel y los libros, pero sin mucha suerte.

Hay una gran cantidad de amarillo y púrpura que corresponde a los modos "Preempted" y "Supervisor" (la tabla de colores completa se describe en la parte superior derecha de la derecha en la imagen adjunta).Dado que estoy pasando tanto tiempo en estos estados en lugar del estado "en azul), estaría particularmente interesado en saber cómo se refieren y si es posible / deseable minimizar el tiempo empleado en estos estados..

ingrese la descripción de la imagen aquí

¿Fue útil?

Solución

Preempeado= Su hilo fue ejecutable, y estaba listo, dispuesto y capaz de ejecutar, pero fue expulsado (contexto conmutado) a favor de algún otro hilo. Esto significa que su hilo no estaba durmiendo en E / S o un evento, y en realidad estaba haciendo algo intensivo de CPU. Sin embargo, debido a la caducidad cuántica o algún otro hilo de mayor prioridad, fue forzado fuera de la CPU.

Supervisor= Su hilo estaba en modo kernel. Por lo general, esto significa que el kernel estuvo de servicio de una llamada del sistema realizada por su hilo.

Ninguno de ellos es estrictamente malo, pero:

Evitando la preferencia: No es mucho que pueda hacer aquí, además de jugar con su prioridad: aumente su prioridad utilizando un valor agradable negativo, o, directamente, utilizando la API de SetPriority. También puede utilizar las políticas de programación para aumentar la preferencia de su hilo y el programador de CAJOLE (el tomador de decisiones subyacentes de los hilos) para poner sus hilos primero, y darles más tiempo de CPU.

Evitando el modo de supervisor: puede ser pesado en las llamadas del sistema. Una vez más, esto no es necesariamente una cosa mala.

Espero que esto ayude,

tg

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top