Search code examples
apache-flexmxmlc

Compiling Flex Modules - Speed up link-checking?


I'm working on a Flex project that has 28 modules, and 1 main SWF. Compiling everything takes 18 minutes total. I'm using load-externs to load a link-report from my main SWF - that works great. The file size of the modules is minimal. But link-checking still occurs for each individual module, increasing the compile time dramatically.

So say I edit a file in my main SWF that a module uses. mxmlc basically performs link-checking for the same file in that module. Even when -incremental=true. When I edit a file that ALL of the modules reference (which happens frequently), ALL of the modules perform link-checking. This has the effect of basically compiling the main SWF 28 times.

This is frustrating, because link checking occurs when I compile my first SWF. It should not have to reoccur for every module. I tried using fcsh, which would hopefully store these links in memory, but that had no effect.

Maybe it would help to compile a SWC of my main SWF, and use that for link-checking instead?

Here are the commands I use to build:

mxmlc -link-report=report.xml -strict=true -debug=false -optimize=true -incremental=true Project.mxml

mxmlc -load-externs=report.xml -strict=true -debug=false -optimize=true -incremental=true ModuleXX.mxml # 28 times

I haven't found a solution for this problem and it's hindering the development of my project. Any help would be greatly appreciated.

Thank you!

Jimmie


Solution

  • I agree that 18 minutes is a very long build time, but this kind of module size optimization should only be necessary on a release build. So my simple recommendations are

    • Don't use compiler optimization during development time
    • Only recompile the modules you are working on
    • Upgrade your hardware
    • Upgrade your software (the Flex 4 compiler should be faster than Flex 3)