Я регулярно запускаю сценарий .jsx в Adobe Illustrator, который сохраняет несколько файлов в определенном формате.
в то время как Illustrator является активным приложением, запуск сценария для 5 файлов занимает 23 секунды .
Когда Illustrator не является основным приложением, запуск сценария для 5 файлов занимает более 5 минут .
Согласно Activity Monitor , Illustrator использует около 75% ЦП, когда находится на переднем плане, но регулируется до уровня менее 2%, когда на заднем плане .
Согласно Activity Monitor, App Nap не используется .
Почему это происходит, и есть ли способ изменить это?
Я хотел бы иметь возможность выполнять другие задачи в ожидании Illustrator. В его нынешнем виде я обязан держать Illustrator на переднем плане.
Некоторые вещи, которые я пробовал : я знал, что
sudo sysctl debug.lowpri_throttle_enabled=0
работал для ускорения резервного копирования Time Machine, так что я думаю, что это может помочь в этом случае. Это не имело никакого эффекта .
Я также попытался отключить App Nap:
defaults write NSGlobalDomain NSAppSleepDisabled -bool YES
Это не имело никакого эффекта .
Я попытался TinkerTool , но я считаю, что это просто графический интерфейс для изменения настройки lowpri_throttle_enabled . Это не имело никакого эффекта .
источник
Этот ответ от Морди Голдинга , менеджера по продукту Adobe Illustrator (2001-2004), в Quora :
Векторная графика имеет свои преимущества и недостатки. К сожалению, это один из недостатков. Это потому, что векторная графика рисуется в линейном порядке.
Возьмем один простой пример - один слой с одним прямоугольником. Дублируйте этот слой 100 раз. Даже если виден только верхний слой, иллюстратор рисует каждый прямоугольник от самого нижнего слоя до самого верха. Illustrator не может рисовать слой 50, пока не будут выполнены предыдущие 49. Это не похоже на фотошоп, который касается только того, какие пиксели в конечном итоге видны.
Расширяя концепцию дальше. Скажем, у вас было 4 ядра. Вы можете взять файл фотошопа и разделить его на сетку из 4 областей, и попросить каждое ядро нарисовать 1 область - все одновременно. Это связано с тем, что пиксель в одной сетке никак не влияет на пиксели в другой области сетки. Поскольку вы можете разделить фотографию на несколько независимых областей, вы можете назначить несколько ядер для визуализации каждой области одновременно.
Однако в Illustrator каждый объект рисуется в том порядке, в котором он отображается в порядке наложения. Поэтому, если я разделю изображение на сетку из четырех, мне все равно придется строить весь арт-объект по объекту, независимо от того, в какой сетке он находится. Это означает, что всем 4 ядрам все равно придется ждать, пока все объекты будут нарисованы, прежде чем выполнять рендеринг.
Это означает, что только некоторые виды функций могут поддерживать многоядерные функции в Illustrator. Например, если вы распечатываете большой файл, иллюстратор передаст спулинг печати другому ядру и вернет вас обратно в документ, чтобы немедленно продолжить работу. Но, к сожалению, это невозможно для ускорения линейных задач, таких как рисование / рендеринг.
источник