Muestrear proceso
También: muestrear una app, muestra de un proceso
Respuesta rápida
“Muestrear proceso” es una herramienta de Monitor de Actividad que registra lo que hace el proceso seleccionado durante unos segundos y genera un informe de texto con dónde pasan el tiempo sus subprocesos. Los desarrolladores usan estos informes para averiguar por qué una app va lenta, está ocupada o se ha colgado.
Apple explica que “Muestrear proceso” crea un informe sobre el proceso seleccionado durante un periodo de 3 segundos. El informe lista cada subproceso y las funciones que estaba ejecutando, con recuentos de cuántas veces apareció cada una.
No hace falta que leas el informe tú. Es más útil cuando una app está atascada o usa mucha CPU y quieres mandarle al desarrollador algo concreto.
Cómo muestrear un proceso en Monitor de Actividad
Selecciona el proceso, haz clic en el botón Más (los tres puntos) de la parte superior de la ventana y elige “Muestrear proceso”. También puedes hacer doble clic en el proceso y hacer clic en “Muestrear” en la ventana que se abre.
Cuando aparezca el informe, puedes guardarlo como archivo de texto y adjuntarlo a un informe de error o a una solicitud de soporte.
Cómo muestrear un proceso desde Terminal
Ejecuta sample <PID> 5 para muestrear un proceso durante 5 segundos. Puedes usar parte del nombre del proceso en lugar del PID. El informe se muestra y se guarda en un archivo, y la ruta aparece al terminar.
Cómo leer un informe de muestra
El informe empieza con una cabecera: el nombre y el PID del proceso, su ruta, su proceso principal, el tipo de código y la versión de macOS. Lo importante viene después, bajo “Call graph”.
El gráfico de llamadas lista cada subproceso. El subproceso principal, el que atiende los clics y las pulsaciones de teclas, aparece como com.apple.main-thread. Bajo cada subproceso, las funciones van sangradas para mostrar qué función llamó a cuál. El número al principio de cada línea es cuántas veces estaba esa función en la pila al tomar una muestra.
- Sigue las líneas con los números más altos hasta el sangrado más profundo. Ahí es donde el subproceso pasó más tiempo.
- Si las líneas más profundas del subproceso principal son llamadas de espera como
mach_msg,__psynch_cvwaito__semwait_signal, el subproceso estaba bloqueado esperando otra cosa. - Si las líneas más profundas son funciones de la propia app con números altos, el subproceso estaba ocupado trabajando.
- La sección “Sort by top of stack”, cerca del final, lista las funciones que se estaban ejecutando más a menudo, un resumen rápido de los mismos datos.
- La lista “Binary Images” del final nombra los frameworks y las bibliotecas cargados en el proceso.
Cómo guardar una muestra en un archivo desde Terminal
El comando sample te da más control que Monitor de Actividad. Por omisión dura 10 segundos, y puedes cambiarlo.
- Abre Terminal desde Aplicaciones > Utilidades.
- Busca el ID del proceso con
pgrep -lx Safari, cambiando Safari por el nombre del proceso. - Ejecuta
sample <PID> 10 -file ~/Desktop/sample.txtmientras el problema esté ocurriendo. - Abre el archivo en tu escritorio o adjúntalo a un informe de error.
Cuándo sirve una muestra y cuándo no
Una muestra es una instantánea de un solo proceso. Úsala cuando ya sepas qué app es la del problema.
- Sirve: una app está colgada, un proceso mantiene un % CPU alto o una app va lenta en una tarea concreta que puedes repetir.
- Sirve menos: todo el Mac va lento y no sabes por qué. Un spindump, que abarca todos los procesos, encaja mejor.
- No sirve: el problema ya ha pasado. Una muestra solo enseña lo que ocurrió mientras se tomaba.
Cómo enviar una muestra a un desarrollador
Una muestra sola ya es útil, pero una nota breve hace mucho más fácil actuar.
- Toma la muestra mientras la app está colgada u ocupada, no después de que se recupere.
- Guarda el informe como archivo de texto en lugar de copiar una parte. Los desarrolladores necesitan el gráfico de llamadas entero y la lista “Binary Images”.
- Apunta qué estabas haciendo cuando empezó el problema, como el archivo que abriste o el botón en el que hiciste clic.
- Incluye la versión de la app y tu versión de macOS. Las dos aparecen también en la cabecera del informe, junto a “Version” y “OS Version”.
- Envíalo desde la página de soporte o el gestor de errores de la app, o a Apple a través del Asistente de Feedback si la app es de Apple.
Preguntas frecuentes
¿Qué hace “Muestrear proceso” en Monitor de Actividad?
Registra lo que hace un proceso durante unos 3 segundos y muestra un informe de sus subprocesos y del código que estaban ejecutando. Los desarrolladores lo usan para diagnosticar bloqueos y un uso alto de CPU.
¿Es seguro muestrear un proceso?
Sí. Muestrear solo observa el proceso. No lo cambia ni lo detiene.
¿Cuándo debo muestrear un proceso?
Mientras el problema esté ocurriendo, por ejemplo cuando una app está colgada o usa mucha CPU. Una muestra tomada después de que se recupere no mostrará la causa.
¿Cuánto tarda “Muestrear proceso”?
En Monitor de Actividad registra unos 3 segundos. El comando sample de Terminal registra 10 segundos por omisión, o los segundos que le indiques.
¿Un informe de muestra contiene información personal?
Contiene el nombre del proceso, rutas de archivos y bibliotecas cargadas, y las rutas pueden incluir tu nombre de usuario. Léelo antes de publicarlo en cualquier sitio público.
¿Por qué la muestra enseña signos de interrogación en lugar de nombres de funciones?
No había nombres de símbolos disponibles para esas partes de la app. El desarrollador aun así puede relacionar las direcciones con su código, así que envía el informe tal cual.
Relacionado
¿Buscas algo mejor que Monitor de Actividad? Consulta las mejores alternativas a Monitor de Actividad para Mac, o explora todos los términos del glosario.