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
This entry was posted in New Features and tagged , , , . Bookmark the permalink.

4 Responses to Speed up Flex Compilation!

  1. Leszek says:

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

  2. Alexander says:

    Anything like this but for java exist?

  3. Alexander Doroshko says:

    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. Joa Ebert says:

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

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>