Тестирование (Ctrl Enter) в Adobe Flash Professional CS6 очень медленное

С десятками классов и тысячными строками кода тестирование (Ctrl+Enter) становится все медленнее и медленнее. Каждый раз приходится ждать около 3 минут. У меня есть Core 2, работающий на частоте 2 ГГц. Я не использую библиотеки. Это нормально? и есть ли инструмент профилирования для Flash, который может помочь?


person Armin    schedule 17.08.2013    source источник
comment
Десятки классов и тысячи строк — это немного, компилируется за пару секунд без проблем. В вашем проекте много ресурсов, не связанных с кодом? Кроме того, вы компилируете для Интернета, а не для мобильных устройств, верно?   -  person Sean Fujiwara    schedule 18.08.2013


Ответы (3)


Также быстрым решением может быть попытка отключить «Режим предупреждений» в настройках скрипта ваших документов. Это может сильно повлиять на время компиляции больших проектов.

person adamh    schedule 18.08.2013
comment
Игнорировать предупреждения — не лучшая привычка. Вы можете нанести больше урона (во время выполнения вы игнорируете предупреждения). Я использую слово «повреждение» в кавычках, поскольку мы говорим только о сокращении нескольких миллисекунд здесь и там за счет исправления предупреждений компилятора. - person Sunil D.; 18.08.2013
comment
По моему опыту, сокращение времени компиляции с 3 минут до 15 секунд — это огромный выигрыш в производительности. Конечно, вы должны периодически снова включать предупреждения об игнорировании, чтобы проверять те незначительные вещи, которые он находит. - person adamh; 18.08.2013
comment
У вас есть справедливое замечание, @adamh, я думаю, все дело в поиске баланса :) - person Sunil D.; 18.08.2013

Я обнаружил, что мало что может изменить это, как только ваша кодовая база начнет расти.

  • Вы можете помочь предотвратить ухудшение, избегая импорта ненужных классов (например, используя импорт звездочек import flash.display.*;).

  • Если возможно, разбейте свой проект на более мелкие проекты, а затем скомпилируйте их в SWC. Ссылайтесь на них из вашего «основного» проекта, чтобы связать их все вместе. Это сэкономит много времени, так как они были предварительно скомпилированы.

  • Вышеописанное также работает с векторными объектами и растровыми изображениями.

  • Если у вас есть большое количество различных текстовых семейств и динамических текстовых полей, убедитесь, что вы встраиваете только необходимые глифы, поскольку они также занимают время при компиляции.

person Andreas    schedule 17.08.2013
comment
Я использую некоторые импорты с * и многие встроенные тексты TLF, постараюсь их исправить. Что касается SWC, я не уверен, как это сделать, есть ли для него какая-либо конкретная документация? - person Armin; 17.08.2013
comment
Вот хорошая статья для начала: hub.tutsplus.com/tutorials/ и документацию, в которой обобщаются шаги, связанные с экспортом SWC help.adobe.com/en_US/AS2LCR/Flash_10.0/ - person Andreas; 17.08.2013
comment
Как помогает использование звездочного импорта? Это ничем не отличается от того, если бы я включил какой-то класс, который на самом деле не используется в моем коде. Неиспользуемые классы не компилируются в период SWF. Так что, если я что-то не упустил, звездный импорт ничего не делает, кроме удобства для разработчика. Однако, когда я сталкиваюсь с новым классом, который никогда раньше не видел, я на самом деле предпочитаю, чтобы они не использовали звездный импорт. Видя все импортируемые классы, вы получаете представление о действиях, которые может выполнять класс. - person Sunil D.; 18.08.2013
comment
Вы правы, он не включает неиспользуемые классы в скомпилированный swf. Однако многие разработчики флэш-памяти имеют тенденцию импортировать каждый пакет из библиотеки флэш-памяти, даже если они не используются. Это в сочетании с многочисленными классами увеличит время компиляции. Вот почему я предлагаю избегать использования звездочного импорта, если только вы не используете весь пакет. - person Andreas; 18.08.2013

Отключение «Режима предупреждений»

Режим предупреждений делает МНОГО проверок Actionscript 2.0, так как количество строк исчислялось тысячами, компиляция была СЛИШКОМ длинной.

Кроме того, вы всегда можете время от времени включать его снова, просто чтобы увидеть предупреждения.

person John McDermott    schedule 11.12.2013