Improve GWT SDM debug session recompilation time by a factor of 10

One of the major features of upcoming GWT release 2.7 is incremental
compilation in SDM session.  Because Buck recompilation is
integrated as HTTP filter on every request, this optimization is
jeopardized: Buck is unaware that a SDM debug session is active.
We cannot entirely skip the Buck integration in SDM debug session
as the site must be initialized at least once.

Pass a Java property from Eclipse launch configuration and maintain
initialization map with initialized flag per user agent for the site.
This improves the time by a factor of 10, ca. 2 sec. for incremental
recompilation on my laptop:

   Compilation succeeded -- 1,822s
   Linking into
   <site>/gerrit-gwtui/com.google.gerrit.GerritGwtUI/compile-5/war/gerrit_ui;
   Writing extras to
   <site>/gerrit-gwtui/com.google.gerrit.GerritGwtUI/compile-5/extras/gerrit_ui
   Link succeeded
   Linking succeeded -- 0,190s
   2,140s total -- Compile completed

Change-Id: Id2cb19a675d500c04e6748216a77dbb4f26fa1ab
This commit is contained in:
David Ostrovsky
2014-11-12 21:38:13 +01:00
committed by David Pursehouse
parent 11c56681b0
commit 500f2c98c8
3 changed files with 27 additions and 22 deletions

View File

@@ -18,5 +18,5 @@
<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="com.google.gerrit.gwtdebug.GerritGwtDebugLauncher"/>
<stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="-noprecompile -src ${resource_loc:/gerrit} -workDir ${resource_loc:/gerrit}/buck-out/gen/gerrit-gwtui com.google.gerrit.GerritGwtUI -- --console-log --show-stack-trace -d ${resource_loc:/gerrit}/../gerrit_testsite"/>
<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="gerrit"/>
<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-Xmx1024M&#10;-XX:MaxPermSize=256M"/>
<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-Xmx1024M&#10;-XX:MaxPermSize=256M&#10;-Dgerrit.disable-gwtui-recompile=true"/>
</launchConfiguration>