Regularmente ejecuto un script .jsx en Adobe Illustrator que guarda un montón de archivos en un formato particular.
Si bien Illustrator es la aplicación activa, ejecutar el script en 5 archivos toma 23 segundos .
Cuando Illustrator no es la aplicación principal, ejecutar el script en 5 archivos lleva más de 5 minutos .
Según Activity Monitor , Illustrator usa alrededor del 75% de la CPU cuando está en primer plano, pero se limita a menos del 2% cuando está en segundo plano .
Según Activity Monitor, App Nap no se está utilizando .
¿Por qué sucede esto? ¿Hay alguna forma de cambiarlo?
Me gustaría poder realizar otras tareas mientras espero a Illustrator. Tal como está, estoy obligado a mantener a Illustrator en primer plano.
Algunas cosas que he intentado : sabía que
sudo sysctl debug.lowpri_throttle_enabled=0
trabajé para acelerar las copias de seguridad de Time Machine, por lo que pensé que podría ayudar en este caso. No tuvo efecto .
También intenté deshabilitar App Nap:
defaults write NSGlobalDomain NSAppSleepDisabled -bool YES
No tuvo efecto .
Intenté TinkerTool , pero creo que es solo una GUI para cambiar la configuración lowpri_throttle_enabled . No tuvo efecto .
fuente
Esta respuesta es de Mordy Golding , Gerente de Producto de Adobe Illustrator (2001-2004), en Quora :
Los gráficos vectoriales tienen sus ventajas y desventajas. Esto, lamentablemente, es uno de los inconvenientes. Esto se debe a que los gráficos vectoriales se dibujan en un orden de apilamiento lineal.
Tome un ejemplo simple: tome una sola capa con un solo rectángulo. Duplica esa capa 100 veces. Aunque solo se ve la capa superior, el ilustrador dibuja cada rectángulo desde la capa más inferior hasta la superior. Illustrator no puede dibujar la capa 50 hasta que las 49 anteriores estén listas. Esto es diferente al photoshop que solo se refiere a qué píxeles son finalmente visibles.
Extendiendo el concepto aún más. Digamos que tienes 4 núcleos. Puede tomar un archivo de Photoshop y dividirlo en una cuadrícula de 4 áreas y decirle a cada núcleo que dibuje 1 área, todo al mismo tiempo. Esto se debe a que un píxel en una cuadrícula no tiene ningún impacto en los píxeles en otra área de la cuadrícula. Como puede dividir una foto en múltiples áreas independientes, puede asignar múltiples núcleos para representar cada área simultáneamente.
Sin embargo, en Illustrator, cada objeto se dibuja en el orden en que aparece en el orden de apilamiento. Entonces, si divido una imagen en una cuadrícula de cuatro, todavía tengo que construir todo el objeto de arte por objeto, sin importar en qué cuadrícula se encuentre. Lo que significa que los 4 núcleos aún tendrían que esperar hasta que se dibujaran todos los objetos antes de renderizar.
Lo que esto significa es que solo algunos tipos de funciones pueden admitir la funcionalidad multinúcleo en Illustrator. Por ejemplo, si imprime un archivo grande, el ilustrador entregará la cola de impresión a otro núcleo y lo regresará a su documento para continuar trabajando inmediatamente. Pero lamentablemente, esto no es posible para acelerar tareas lineales como dibujar / renderizar arte.
fuente