10 votos

¿Cómo forzar un comando de terminal para que se ejecute con los núcleos de rendimiento en Apple Silicon?

Recientemente tuve que reinstalar las herramientas de desarrollo utilizando xcode-select —install pero me di cuenta de que la instalación se completó con mis núcleos de eficiencia en lugar de mis núcleos de rendimiento. Lo sé porque iStatMenu me mostró que mis cuatro núcleos de eficiencia estaban al 100% la mayor parte del tiempo mientras que los núcleos de rendimiento estaban inactivos.

¿Hay alguna forma de establecer manualmente la prioridad de un proceso? ¿Puedo decirle a un proceso que se ejecute en los núcleos de rendimiento si es necesario? Lo ideal sería que utilizara tantos núcleos como hilos tuviera, y que se ejecutara en los 8 núcleos simultáneamente.

Una respuesta aquí describe cómo ejecutar una tarea con los núcleos de eficiencia, lo cual es igualmente útil, pero no pude averiguar cómo adaptar esa técnica para utilizar los núcleos de rendimiento en su lugar.

4voto

Jose Chavez Puntos 645

Hay que tener en cuenta que la respuesta vinculada a funciona "fijando" la configuración de la calidad del servicio para el programa, es decir, poniendo un límite a lo "bien" que el programa debe ser tratado por el sistema.

Esta pregunta es, en realidad, lo contrario de querer poner un límite a lo "malo" que podría ser el programa tratado por el sistema.

Es decir, aunque xcode-select --install realmente pide los núcleos de rendimiento, podría en circunstancias normales todavía ser forzado a correr en los núcleos de eficiencia si los núcleos de rendimiento se utilizan para otras cosas.

Yo recomendaría empezar utilizando taskinfo para obtener información sobre el programa específico. Es decir, inicie el proceso de instalación y ejecute el siguiente comando en el Terminal:

sudo taskinfo 1234

donde 1234 es el PID del xcode-select proceso, ha comenzado.

Esto le permitirá conocer una gran cantidad de información útil sobre el proceso, en particular puede ver qué política de programación se está utilizando, la abrazadera de la QoS, y los ajustes de la QoS de latencia y thruput. Ten en cuenta que estos valores se muestran primero como "política solicitada" y luego como "política efectiva".

Dependiendo de la configuración de su sistema, yo asumiría que usted encuentra la razón para correr en los núcleos de eficiencia en la salida. A continuación, utilice el taskpolicy para establecer un nuevo nivel de paso con el -t o un nuevo nivel de latencia con la opción l opción. También puede utilizar la opción nice para modificar la prioridad de programación.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X