We are also developing a large app in Flex at the moment. Certain platform limitations are certainly a bottleneck. As far as compilation of app goes, I believe you are developing your app with modular approach. Using modules (even better if modules are treated as separate projects) reduces compilation time to a great extent.
Here one thing to evaluation is the user experience and look and feel vs technical limitations vs other similar technologies. I believe your app has been performing well so far. Now you would need to decide if your future requirements have major contribution towards coping up with the limitations of the technology or not. Every technology has certain limitations and benefits. Cost/benefit and Feasibility study is important to decide your direction.
Regarding your build times, it would help us if you could answer the following questions:
* How many projects do you have in your workspace?
* In addition to an application, are you building libraries, modules, or both?
* How many MXML files do you ahve? How many AS files?
* How long does a full build take?
* How long does a typical incremental build tag?
* Have you increased the amount of memory that Flash Builder can use?
Adobe Flex SDK Team
Thanks taking time for this.
>>* How many projects do you have in your workspace?
>>* In addition to an application, are you building libraries, modules, or both?
We are building three applications (swf's), no modules.
>>* How many MXML files do you ahve? How many AS files?
$ find . -name *.mxml | wc -l
$ find . -name *.as | wc -l
>>* How long does a full build take?
About 10 minutes from the command line using maven with flex mojo's.
>>* How long does a typical incremental build tag?
I wish I could give a number for that. It depends and is really unpredictable, but it is not uncommon it takes longer than 10 minutes. If you change something in the top level project (the one that generates the swf), it is not all that bad typically (2 minutes as a guess), but if you change something in a deeper library project all bets are off.
>>* Have you increased the amount of memory that Flash Builder can use?
We have not used Flash builder. We left Flex builder about 6 months ago and switched to IntelliJ which, at that time was given us better results. It also supports parallel compilation which improved build times for us. Perhaps Flash builder would give us equivalent results. We certainly tweaked the memory settings. Problem at the time was that fcsh never seems to have enough of it and always wants more to the extent that every few hours restarting flex builder (at that time) was necessary.
Again thanks for you time, it is appreciated
we are working on a project with ~140 individual modules, ~4000 AS3 classes and ~1300 embedded PNG files. Development is only possible with IntelliJ IDEA for us. We tried several Eclipse solutions.
Building the project was done with a custom application that spawned compilers in parallel (in fact thats the reason why IDEA supports it now:)) but we are now migrating to FlexMojos 4.0.
Currently a complete rebuild of the whole projet takes about 1min 40sec on a quadcore without unit tests. This is already faster than the time we were achieving with the quick-and-dirty custom build app because FlexMojos handles the ActionScript compiler really well. Some upcoming features of FM will speedup incremental builds significantly as well.
Another idea is to rethink your project/module layout as well. The Google Guice presentation is a good point to start. If you modularize your application a little bit better you do not have to recompile the whole project for changes at the core.
One note: We are still using custom tools, some are integrated in FlexMojos now. For instance PNG compression to DefineBitsJPEG4 tags is possible with Apparat's Reducer and scales well with multiple cores.