Как я могу ускорить компиляцию MXMLC? - PullRequest
2 голосов
/ 06 февраля 2012

Я использую ant для создания своего веб-приложения.У меня есть цель в моем скрипте муравья, которая компилируется примерно за 8 минут.Поскольку mxmlc компилирует все с нуля и загружает JVM каждый раз, это занимает много времени.Есть ли способ оптимизировать эту задачу?

Я использую Flex SDK 3.0.Вот моя цель муравья:

<target name="compile.organic.flash" depends="setup">
  <property name="WelcomeBack.swf" value="${www.dir}/swf/as3/apps/welcome/WelcomeBack.swf" />
  <mxmlc file="${AS3.classpath}/com/organic/app/fthb/welcome/src/WelcomeBack.as"
         output="${WelcomeBack.swf}"
         incremental="${mxmlc.inc}"
         default-frame-rate="30"
         accessible="true"
         default-background-color="${swf.backgrond.color}"
         allow-source-path-overlap="true"
         compiler.strict="true">
    <default-size width="940" height="528" />
    <source-path path-element="${Welcome.path}"/>
    <source-path path-element="${AS3.classpath}"/>
  </mxmlc>

  <property name="Welcome.swf" value="${www.dir}/swf/as3/apps/welcome/Welcome.swf" />
  <mxmlc file="${AS3.classpath}/com/organic/app/fthb/welcome/src/Welcome.as"
         output="${Welcome.swf}"
         incremental="${mxmlc.inc}"
         default-frame-rate="30"
         accessible="true"
         default-background-color="${swf.backgrond.color}"
         allow-source-path-overlap="true"
         compiler.strict="true">
    <default-size width="940" height="528" />
    <source-path path-element="${Welcome.path}"/>
    <source-path path-element="${AS3.classpath}"/>
    <compiler.include-libraries dir="${AS3.component}/" >
    </compiler.include-libraries>
  </mxmlc>

  <property name="App.swf" value="${www.dir}/swf/as3/apps/App-${svnVersion}.swf" />
  <mxmlc file="${AS3.classpath}/com/organic/app/fthb/App.as"
         output="${App.swf}"
         incremental="${mxmlc.inc}"
         default-frame-rate="30"
         default-background-color="${swf.backgrond.color}"
         compiler.strict="true">
    <default-size width="300" height="300" />
    <source-path path-element="${AS3.classpath}"/>
    <compiler.include-libraries dir="${AS3.component}/" >
    </compiler.include-libraries>
  </mxmlc>

  <property name="LSOApp.swf" value="${www.dir}/swf/as3/apps/LSOApp-${svnVersion}.swf" />
  <mxmlc file="${AS3.classpath}/com/organic/boa/fthb/LSOApp.as"
         output="${LSOApp.swf}"
         incremental="${mxmlc.inc}"
         default-frame-rate="30"
         default-background-color="${swf.backgrond.color}"
         compiler.strict="true">
    <default-size width="300" height="300" />
    <source-path path-element="${AS3.classpath}"/>
    <compiler.include-libraries dir="${AS3.component}/" >
    </compiler.include-libraries>
  </mxmlc>

  <property name="CheckRates.swf" value="${www.dir}/swf/as3/apps/CheckRates-${svnVersion}.swf" />
  <mxmlc file="${CheckRates.path}/CheckRates.as"
         output="${CheckRates.swf}"
         incremental="${mxmlc.inc}"
         default-frame-rate="40"
         accessible="true"
         default-background-color="${swf.backgrond.color}"
         compiler.strict="true" compiler.allow-source-path-overlap="true" >
    <default-size width="940" height="528" />
    <compiler.source-path path-element="${AS3.classpath}"/>
    <compiler.source-path path-element="${CheckRates.path}"/>
    <!--  <source-path path-element="${AS3.classpath}"/> -->
    <compiler.include-libraries dir="${AS3.classpath}">
    <include name="fl/fl.swc" />
    </compiler.include-libraries>
  </mxmlc>

  <copy file="${AS3.classpath}/com/organic/app/fthb/checkRates/js/config/check_rates_config.js" tofile="${www.dir}/swf/as3/apps/config/check_rates_config.js"/>
  <property name="PointsCalculator.swf" value="${www.dir}/swf/as3/apps/PointsCalculator-${svnVersion}.swf" />
  <property name="flash.apps.build.dir" value="${www.dir}/swf/as3/apps" />
  <compile-flash basename="PointsCalculator" srcdir="${flash.apps.src.dir}/pointsCalculator">
  </compile-flash>
  <copy todir="${flash.apps.build.dir}/config">
    <fileset dir="${flash.apps.src.dir}/pointsCalculator/config" includes="*.js"/>
  </copy>
  <copy todir="${build.dir}/www/css">
    <fileset dir="${flash.apps.src.dir}/pointsCalculator/css" includes="*.css"/>
  </copy>
  <copy todir="${build.dir}/www/swf/as3/apps/welcome/assets/swfs">
    <fileset dir="${flash.apps.src.dir}/welcome/assets/swfs" includes="*.swf"/>
  </copy>
  <copy file="${videoplayer.dir}/videoplayer.swf" tofile="${www.dir}/swf/as3/apps/videoplayer.swf" />
</target>

Ответы [ 2 ]

1 голос
/ 06 февраля 2012

Использование fcsh . Из первого абзаца этой ссылки

Утилита fcsh (Flex Compiler Shell) обеспечивает среду оболочки который вы используете для компиляции приложений, модулей и компонентов Flex библиотеки. Он работает очень похоже на командную строку mxmlc и compc компиляторы, но он компилируется быстрее, чем mxmlc и compc компиляторы командной строки. Одна из причин заключается в том, что, сохраняя все в память, fcsh устраняет накладные расходы при запуске JVM и загрузке классы компилятора. Другая причина в том, что результаты компиляции (для Например, информация о типе) может быть сохранена в памяти для последующего сборники.

0 голосов
/ 07 февраля 2012

Мы обнаружили, что замедление компилятора в основном связывало ресурсы. Мы создали библиотечный проект swf, который используется только для ресурсов (изображений, swfs и т. Д.), За исключением шрифтов, и он работает без проблем.

У нас есть массивный проект здания в 2 минутах от Maven.

...