Performance: impact of the Flash Player version and of the "optimize" compilation flag
The present post aims to illustrate with benchmark numbers the impact on speed of:
The "optimize" compilation flag is described here. In Adobe Flash Builder, it corresponds to building using the command "Export release build" in the "Project" menu. For developers running applications in Flash Builder, this flag can be easily missed. Indeed, Flash Builder provides the mean to run in debug and non-debug modes. However, the non-debug mode simply means that the debugger is not active, it does not mean that the application is compiled in optimized mode, and this matters quite a lot for some Flash Player versions (as described below).
Results in summary
BenchmarksBetter than words, some numbers. The charts below compare the durations for the two major steps for displaying a diagram: the diagram creation and the execution of the graph layout algorithm (for the automatic placement of the nodes and the automatic reshaping of the diagram connections). The speed of the diagram creation depends mostly on how fast Spark components can be created and styled, while the speed of the graph layout is mostly influenced by the pure computational speed. All measures are done using Elixir Enterprise's Hierarchical Layout sample, with its largest graph example and using the default configuration of the graph layout.
I tested using the latest available version of each Flash Player variant:
The vertical axis is the duration in milliseconds.
1. Impact of Adobe Flash Player version when running an application compiled with optimize=true
2. Impact of Adobe Flash Player version when running an application compiled with optimize=false
3. Impact of the optimize compilation flag when running non-debug variant of Adobe Flash Player
4. Impact of the optimize compilation flag when running debug variant of Adobe Flash Player
The two last charts show a quite surprising fact: while we did expect that the "optimize" flag impacts the performance quite strongly, we found out that this only holds when using the debug variant of Flash Player (both 10.0 and 10.1), not when using the non-debug variant.
To get the best possible performance from IBM ILOG Elixir and Elixir Enterprise (as from any Flex 4 application):