Reviewers: kathrin, bobv, Description: This patch modifies the compiler to produce a size breakdown in a much faster way than it currently does in trunk. It also updates SoycDashboard to deal with the new breakdown.
In the compiler, there is a new SizeBreakdown class that replaces the saved story information by default. Users can also specify -XsoycExtra to get the fine-grained story information emitted if they want. A Sizebreakdown is computed by a new subclass of JsToStringVisitor that takes a JavaToJavaScriptMap as an argument. I tried to get it working with the SymbolData information, but there is too much information still in JavaToJavaScriptMap that is not in the SymbolDatas. I think it would be cleaner to shrink JjsMap down to just 2-3 maps and move most of the rest over to SymbolDatas, but since JjsMap can't be eliminated entirely I dropped it for now. For SoycDashboard, the XML reader is rewritten for the new format. GlobalInformation and SizeBreakdown are slimmed down because they don't do fractional billing any longer. I also tweaked the output in the minimal ways that seemed important. Since string types are no longer computed (compiler vs. user vs. a few other possibilities), I removed that pane, and to use up the new space enlarged the package breakdown. Also, all byte counts are reported as integers now, since there is no fractional billing. Please review this at http://gwt-code-reviews.appspot.com/51804 Affected files: dev/core/src/com/google/gwt/core/ext/linker/CompilationAnalysis.java dev/core/src/com/google/gwt/core/ext/linker/impl/StandardCompilationAnalysis.java dev/core/src/com/google/gwt/core/ext/soyc/impl/SizeMapRecorder.java dev/core/src/com/google/gwt/core/linker/SoycReportLinker.java dev/core/src/com/google/gwt/dev/Precompile.java dev/core/src/com/google/gwt/dev/jjs/JJSOptions.java dev/core/src/com/google/gwt/dev/jjs/JJSOptionsImpl.java dev/core/src/com/google/gwt/dev/jjs/JavaToJavaScriptCompiler.java dev/core/src/com/google/gwt/dev/jjs/impl/FragmentExtractor.java dev/core/src/com/google/gwt/dev/jjs/impl/GenerateJavaScriptAST.java dev/core/src/com/google/gwt/dev/jjs/impl/JavaToJavaScriptMap.java dev/core/src/com/google/gwt/dev/js/JsReportGenerationVisitor.java dev/core/src/com/google/gwt/dev/js/JsSourceGenerationVisitorWithSizeBreakdown.java dev/core/src/com/google/gwt/dev/js/SizeBreakdown.java dev/core/src/com/google/gwt/dev/util/arg/ArgHandlerSoycExtra.java dev/core/src/com/google/gwt/dev/util/arg/OptionSoycExtra.java tools/soyc-vis/src/com/google/gwt/soyc/CodeCollection.java tools/soyc-vis/src/com/google/gwt/soyc/GlobalInformation.java tools/soyc-vis/src/com/google/gwt/soyc/LiteralsCollection.java tools/soyc-vis/src/com/google/gwt/soyc/MakeTopLevelHtmlForPerm.java tools/soyc-vis/src/com/google/gwt/soyc/SizeBreakdown.java tools/soyc-vis/src/com/google/gwt/soyc/SoycDashboard.java --~--~---------~--~----~------------~-------~--~----~ http://groups.google.com/group/Google-Web-Toolkit-Contributors -~----------~----~----~----~------~----~------~--~---
