The attached graph shows an analysis of code size to compile time for
building a large application.  The code size is the total number of bytes
output for .cache.js files for all permutations added together.

Somewhere between passes 2 to 4 is a "sweet spot", where further
optimization passes appear to be returning only marginal improvements.   At
 3 optimization passes,  Another way to verify that besides just the code
size metric is to look at the statistics I added in a week ago that show how
much the tree changes on each pass.  When we looked at the same application,
Changes were measured in the thousands on the first pass or two, then
trickled down into the tens in later passes.

Previously, I had another implementation of this feature where the
DataflowOptimizer and SameParameterValueOptimizer were automatically turned
off until level 6 or higher (you can flip these off with a separate command
line flag).  In that case, code size was nearly the same, and compile time
was 220 seconds at optimization level 3.

full optimization: 300s
3 passes only: 250s
3 passes - aggressive optimizations: 220s

-Eric.

On Thu, Sep 23, 2010 at 3:32 PM, <[email protected]> wrote:

> Reviewers: scottb, fabbott, Lex,
>
> Description:
> Adds a way to tune the optimization level in steps from
> draft optimize to full optimization (the current default)
>
> Preliminary testing shows that optimization level '3'
> can give almost as good code size results (within 5%)
> as full optimization, with about 20% reduction in compile time.
>
>
> Please review this at http://gwt-code-reviews.appspot.com/915802/show
>
> Affected files:
>  M dev/core/src/com/google/gwt/dev/Precompile.java
>  M dev/core/src/com/google/gwt/dev/jjs/JJSOptions.java
>  M dev/core/src/com/google/gwt/dev/jjs/JJSOptionsImpl.java
>  M dev/core/src/com/google/gwt/dev/jjs/JavaToJavaScriptCompiler.java
>  M dev/core/src/com/google/gwt/dev/util/arg/ArgHandlerDraftCompile.java
>  A dev/core/src/com/google/gwt/dev/util/arg/ArgHandlerOptimize.java
>  D dev/core/src/com/google/gwt/dev/util/arg/OptionDraftCompile.java
>  A dev/core/src/com/google/gwt/dev/util/arg/OptionOptimize.java
>
>
>


-- 
Eric Z. Ayers
Google Web Toolkit, Atlanta, GA USA

-- 
http://groups.google.com/group/Google-Web-Toolkit-Contributors

<<attachment: comparison.png>>

Reply via email to