¿Por qué el Finder se ejecuta con una prioridad de proceso tan baja?

13

Estoy un poco perdido acerca de esto.
Estoy ejecutando una gran importación en apertura, y esto está haciendo que mi sistema se ralentice a un rastreo completo, básicamente, lo hace inutilizable para cualquier cosa, incluso navegando por la web. Como esto parece poco natural, pasé un poco de tiempo mirando a mi alrededor.

La ejecución de ps -Al muestra que, aparentemente de forma predeterminada, Dock , Finder y SystemUIServer parecen funcionar con una prioridad mucho más baja que las aplicaciones del usuario. Mientras que las aplicaciones de usuario suelen tener una prioridad de 33, el Dock, Finder, etc. tienen una prioridad de 53.

El resultado final es que CUALQUIER tarea intensiva del procesador obstruye completamente la IU y hace que el sistema quede inutilizable hasta que finalice.

De todos modos, el uso de renice -20 -p <prid> los lleva a la misma prioridad que el resto de la IU de la zona de usuario, y da como resultado que no tenga que esperar 1-3 segundos (!) para que la UI responda a algo tan simple como un mouse haga clic.

Thad dijo, tengo dos preguntas:
¿Hay alguna razón por la que no deba alterar la prioridad del hilo del buscador de esta manera?
¿Hay alguna forma de hacer que el cambio de prioridad sea persistente, p. Ej. por lo que permanece así después de reiniciar.

    
pregunta Fake Name 16.11.2010 - 07:23

3 respuestas

1

No estoy seguro de que alguien ajeno a los desarrolladores de Apple pueda responder esta pregunta, los secretos internos de Finder son su dominio. Si crees que hay algunos problemas de retraso notables con la interfaz de usuario, es posible que desees enviar un informe de error a Apple al respecto.

A juzgar por el sonido de las cosas (los procesos que toman todos los recursos de manera intencional) es un caso un tanto novedoso para la administración de la memoria. Todavía no he visto que un sistema funcione de la mejor manera posible sin un 10-20% de recursos gratuitos, como una ayuda de búfer.

Solo por curiosidad, ¿qué son estos procesos que está ejecutando?

    
respondido por el Tim 13.12.2010 - 04:56
1

"Estoy ejecutando una gran importación en apertura, y esto está haciendo que mi sistema se ralentice hasta un rastreo completo"

Entonces Aperture es (probablemente) el programa que desea renice , no los otros. Los procesos que mencionó están optimizados en relación con las aplicaciones de usuario promedio, de modo que las aplicaciones de usuario obtienen mayor prioridad y responden, ya que son lo que los usuarios utilizan la mayor parte del tiempo.

Su caso es el menos común, donde una aplicación está realizando una tarea intensiva a largo plazo y el usuario desea hacer otra cosa al mismo tiempo. De forma predeterminada, las aplicaciones del usuario son las que tienen prioridad, de modo que estas tareas intensivas obtienen más recursos y se completan antes.

Por cada usuario que se queja de que otras aplicaciones no responden lo suficiente, hay otro usuario que se queja de que la aplicación activa no se está ejecutando lo suficientemente rápido.

Si está ejecutando una tarea larga e intensiva en recursos y sabe que desea que tenga una prioridad más baja para que pueda usar otros procesos mientras se completa la tarea, y no le importa si la tarea intensiva demora más, debería disminuir La prioridad del proceso que ejecuta la tarea intensiva.

En cuanto a su segunda pregunta, hay varias soluciones posibles para hacer que renice sea más automático. Por ejemplo, podría crear un applet de script que ejecute Aperture con una prioridad más baja y usarlo para iniciar Aperture. O puede iniciar Aperture a través de un script de shell almacenado en un archivo * .command (sin embargo, eso abrirá el Terminal y ejecutará el comando en una ventana del terminal, que puede que no sea lo que desea). Cada uno de estos es un poco complicado. Si desea ejemplos, puedo verlos más adelante.

    
respondido por el Chris Page 26.08.2011 - 07:24
1

Hace mucho tiempo planteé una pregunta similar en ServerFault, aunque no se centró específicamente en el Finder (aunque SÍ me parece que el Finder también es intolerablemente lento). Cómo "renice" permanentemente ¿Un proceso en Mac OS X (o iOS, etc.)? No se recogió mucha información allí, en cuanto a una buena manera de hacer esto ... o en cuanto a por qué es así ...

Todavía pienso en esto a menudo, y en realidad hay algunas maneras de confundirse con los "conceptos básicos" si te atreves. Como se mencionó anteriormente, puede hacer varias tramas de shell ... pero un buen lugar para tales fechorías son las diversas rutinas de arranque /etc/rc* .. que ya están ahí arriba .. configurando todo tipo de parámetros de sistema arbitrarios (definidos por Apple) para tú. edítelos o busque cómo agregar sus propias rutinas al proceso de arranque.

también, si realmente quieres hacer explotar tu cabeza ...

sudo sysctl list y es clave para el cuadro de pandora, también conocido como /etc/sysctl.conf

    
respondido por el alex gray 28.06.2012 - 08:16

Lea otras preguntas en las etiquetas