Подтвердить что ты не робот

Любые советы по ускорению времени компиляции в Flex Builder 3?

Я запускаю Flex Builder 3 на Mac и по мере роста моего проекта - время компиляции увеличивается дольше и дольше. Я использую некоторый SWC, и есть достаточное количество кода, но не нужно ли тратить минуты на сборку и сбои каждый день, если это?

4b9b3361

Ответ 1

В дополнение к уже упомянутым предложениям закройте все открытые вами проекты, которые вы не используете.

Богатый щелчок по проекту в представлении "Навигатор" и выберите "Закрыть несвязанные проекты".

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

микрофонные камеры

[email protected]

Ответ 2

Прежде всего, комментарии к некоторым ответам:

  • Нет необходимости явно указывать -incremental в Flex Builder, поскольку по умолчанию используется инкрементная компиляция.

  • -keep-generated-actionscript - это убийца производительности, потому что он инструктирует компилятор выписать коды AS3, сгенерированные для компонентов MXML, в середине компиляции. Файловый ввод-вывод в середине компиляции означает ненужные паузы и низкое использование ЦП.

  • -optimize замедляет связывание, потому что он инструктирует компоновщик создавать меньшие SWF файлы. Обратите внимание: -optimize = true | false не влияет на создание SWC, потому что SWC-библиотеки являются библиотеками и должны быть неоптимизированы.

  • Я редко общаюсь с настройками JVM, потому что JVM хорошо знает свои задания и хорошо настраивается во время выполнения. Большинство людей ухудшают ситуацию, устанавливая различные параметры настройки GC. Тем не менее, есть 3 настройки, которые большинство людей понимают и правильно устанавливают для их использования:

-Xmx (максимальный размер кучи)

-сервер или -клиент (сервер HotSpot или клиентская виртуальная машина)

-XX: + UseSerialGC или -XX: + UseParallelGC (или другой несерийный GC)

-сервер последовательно выигрывает -клиент примерно на 30% при запуске компилятора Flex. -XX: + UseParallelGC включает параллельный сборщик мусора. идеально подходит для многоядерного компьютера и когда компьютер по-прежнему имеет циклы процессора, чтобы сэкономить.

Вы также можете проверить Hellfire Compiler Daemon (http://bytecode-workshop.com/). Он использует несколько процессорных ядер для одновременного компиляции нескольких приложений Flex. Вы также можете запускать компилятор на второй машине через сокеты (предполагая, что ваш второй компьютер имеет более быстрые процессоры и больше памяти).

По-моему, используйте больше модулей, чем библиотеки, и используйте HFCD.

Надеюсь, что это поможет.

-Clement

Ответ 3

Нет необходимости использовать mxmlc в командной строке, чтобы иметь возможность добавлять флаги компилятора. Щелкните правой кнопкой мыши ваш проект в Flex Navigator, выберите "Свойства", а затем "Flex Compiler" в появившемся диалоговом окне. Там вы можете добавить дополнительные флагов компилятора.

Не уверен, что есть что сделать, но больше кода означает больше времени компиляции, так оно и есть. Если вы не выполняете сборку выпусков (или что-то там, что вызывается в Flex Builder), вряд ли ваши параметры компилятора включают в себя optimize. Лучшим выбором для тестирования будет -incremental (который только перекомпилирует измененные части) и -keep-generated-actionscript (который останавливает компилятор от удаления файлов ActionScript, которые он сгенерировал из файлов вашего приложения MXML).

Я очень предпочитаю использовать mxmlc в командной строке (через Ant) по сравнению с Flex Builder. Хотя я не думаю, что последний компилирует все медленнее, он чувствует себя более вялым во всех отношениях. Использование Ant также позволяет делать больше, чем просто компиляцию при построении и условную компиляцию (только компилируйте SWF или SWC, если исходный код действительно изменился). Для получения дополнительной информации об этом в моем блоге.

Что вы можете попробовать, это Flex Compiler Shell, еще один инструмент командной строки, который может ускорить работу. По сути, он пытается как можно больше сохранить память между сборками, поэтому не нужно ждать таких вещей, как запуск JVM (компилятор Flex является Java-приложением). С другой стороны, это все, что делает Flex Builder.

Ответ 5

Я создал RAM-диск с рабочим пространством, и он дает до 10% лучшего времени компиляции. Не много, но что-то.

Ответ 6

По возможности вам требуется как минимум 4 гигабайта на вашем компьютере и не забудьте переопределить настройки памяти по умолчанию, которые eclipse/flexbuilder предоставляет приложению.

Если вы не знаете, как это сделать, вы можете найти приложение flexbuilder в/Приложения, щелкните правой кнопкой мыши и выберите "Показать содержимое пакета". Затем зайдите в файл содержимого и отредактируйте файл eclipse.ini. Отредактируйте этот файл как минимум:

-vmargs -Xms768m -Xmx768m -XX:PermSize=128m -XX:MaxPermSize=128m 

Также стоит перейти к настройкам eclipse/flexbuilder и установить флажок "Показать статус кучи" под Windows- > Preferences- > General (это в eclipse с плагином FB, я предполагаю, что он также существует для автономный FB).

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

Я также предлагаю отключить автоматическое построение проекта при изменении ваших файлов (вы можете принудительно построить сборку с помощью cmd-B).

У нас был огромный проект с большим количеством файлов модулей, и производительность в FlexBuilder 3 была достойной с этими шагами.

Ответ 7

Перейдите в Project- > Properties- > Flex Applications. Все перечисленные приложения скомпилируются каждый раз (даже если у вас установлен по умолчанию). Если вы удалите все, кроме значения по умолчанию (не беспокойтесь, он не удалит фактические файлы), он только компилирует приложение по умолчанию. Это привело к значительному ускорению для меня. Если вы измените свое приложение по умолчанию, оно добавит его в список приложений Flex - добавив к вашему времени компиляции. Вам нужно будет сохранить этот список, чтобы получить самую быструю компиляцию.

Ответ 8

Я всегда отключу "автоматическую компиляцию" для Flex. Он слишком много компилируется, занимает слишком много времени и поэтому прерывает мою работу.

Если у вас много разных файлов проектов, и все эти потребности необходимо перекомпилировать, но вы также открываете другие проекты и не хотите их закрывать, всегда делаете сборку, вы также можете использовать Eclipse Working Sets.

К сожалению, по умолчанию Flex Navigator не поддерживает рабочие наборы. Но вы можете открыть проводник пакетов с помощью Window/Show View/.... Нажмите на маленькую белую стрелку вниз на стойку и выберите элементы верхнего уровня: рабочие наборы. Затем вы можете добавить рабочие наборы (или группы проектов). Каждый проект должен находиться как минимум в одном рабочем наборе ( "Другие проекты" по умолчанию), но может быть в нескольких.

Теперь с помощью Project/Build Working Set/... вы можете поручить Eclipse построить все проекты в этом рабочем наборе, но ни один из других. Это особенно полезно, если вы подозреваете, что ваши ссылки на проекты иногда нарушаются - в противном случае построение "самого верхнего" проекта должно автоматически запускать последующие сборки.

Ответ 9

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

Ответ 10

В SDK 4.x.x появилась глупая ошибка (см. Adobe bugsystem, issue FB-27440), которая заставляет проекты с метаданными SVN или CVS выполнять гораздо медленнее, чем с SDK 3.x.x. О том, как это можно исправить, см. здесь.

Ответ 11

Возможно, вам захочется изучить компилятор командной строки, найденный в Flex SDK, mxmlc. Насколько я помню, Flex Builder 3, похоже, скрывает все детали компилятора, но, возможно, есть аргументы, которые вы можете добавить, что поможет вам ускорить компиляцию.

Например, вы можете установить optimize=false, который пропустит шаг оптимизации байт-кода (возможно, сократит время компиляции)? Разумеется, это связано с ценой производительности и размера файла фактического приложения.

Дополнительную документацию по mxmlc можно найти по адресу: http://livedocs.adobe.com/flex/3/html/compilers_13.html.

Удачи!

Ответ 12

Я не использую Flex Builder, но я использую компилятор Flex SDK каждый день, и я тратил массу времени, ожидая, когда компилятор MXMLC выполнит свою работу, пока не найду Flex Compiler Shell:

http://blog.zarate.tv/2008/12/07/theres-something-called-flex-compiler-shell/

Хотя теоретически Flex Builder уже использует эту оптимизацию, возможно, стоит проверить.

Ответ 13

Вы можете использовать РАБОЧИЕ УСТРОЙСТВА, чтобы скомпилировать только набор ваших компонентов, которые являются частью приложения, которое вы меняете, а не весь проект

http://livedocs.adobe.com/flex/3/html/help.html?content=build_6.html

Ответ 14

Обычно первая сборка занимает самое длинное, а затем довольно быстро после этого. Это с использованием Vista x64 w/core 2 duo.

В противном случае, я почти уверен, что процессор обновления Intel Core i7 Extreme Edition 965 3.2GHz ускорит создание Flex.:):):)