Speed up Flex Compilation!

If you work on large projects with dozens of Flex modules (or facets) you’ll like this new feature of IntelliJ IDEA 9.0.2, which lets shorten project build time by compiling several independent Flex modules (facets) in parallel.

To enable this feature go to Settings (Ctrl+Alt+S), Compiler node and then Flex Compiler page:

Let’s have a closer look at this feature.

Flex Compiler Shell (fcsh) is good for small projects, and may be useful in large projects as well, when you need to compile only some of the modules (facets). Fcsh process is kept in memory between compilations, so it is able to quickly recompile only changed piece of code (that is called incremental compilation), but in case of large projects fcsh runs out of memory, then IntelliJ IDEA restarts it automatically, but incremental compilation data is lost.

Mxmlc/compc processes are not kept in memory between compilations, but simultaneous running of independent compilations gives a good performance gain. IntelliJ IDEA automatically finds independent compilations based on module-on-module dependencies, configured in Project Structure (Ctrl+Alt+Shifl+S), Modules node, Dependencies tab.

Whatever tool you’re using, IntelliJ IDEA keeps track of modules where nothing was changed since previous compilation and skips compilation of up-to-date swf/swc files.

In conclusion, here are different ways of compilation in IntelliJ IDEA (applicable for Flex as well as for other programming languages):

  • Make Project (Ctrl+F9): compile all modules incrementally (if possible), do not compile up-to-date modules
  • Rebuild Project on the Build menu: force full non-incremental compilation of all modules
  • Make Module (in popup menu of module root in Project View): compile selected module and all modules it depends on incrementally (if possible), do not compile up-to-date modules
  • Compile Module (Ctrl+Shift+F9) (in popup menu of module root in Project View): force non-incremental compilation of selected module only, it’s dependencies are not compiled
Comments below can no longer be edited.

4 Responses to Speed up Flex Compilation!

  1. Avatar

    Leszek says:

    February 26, 2010

    Nice! Is it possible to have such feature for GWT?

  2. Avatar

    Alexander says:

    February 26, 2010

    Anything like this but for java exist?

  3. Avatar

    Alexander Doroshko says:

    February 26, 2010

    As far as I know the bottleneck of java compilation performance is HDD, so parallelization would give only performance degradation.
    Can’t say anything about GWT. You’d better ask it in the forum http://www.jetbrains.net/devnet/community/idea/ideacommunity

  4. Avatar

    Joa Ebert says:

    February 26, 2010

    Thank you guys for implementing this! You are really saving us a lot of trouble.

Discover more