最小化GWT应用程序的编译大小

时间:2013-01-24 09:31:08

标签: java gwt gxt

我的管理网站基于GWTSencha Ext GWT 2我遇到问题,加载速度非常慢, 使用Firebug我可以看到这个

  

4DDF7CE1FD8584654846E8ADA9D9DECB.cache.html

现在

约为2MB,这就是加载速度慢的原因。然而,使用GWT 2.5我可以减少编译大小 大约15%。但是我仍然需要进一步缩小尺寸。我想在采用Code Split方法之前这样做。

使用PageSpeed我得到了这个优化结果,比如Minify HTML / Javascript等,但是它很难专门用于GWT代码。

除了选择混淆模式之外,还有哪些方法可以最小化编译大小。是否像压缩模式?

4 个答案:

答案 0 :(得分:12)

你正在盲目地接近这个问题。 PageSpeed like tools更有助于提高运行时性能。

1)您应该启用GWT Compiler的报告功能。分析报告以深入了解应用程序中最大值为2 MB的内容。 在GWT Maven插件中

   <compileReport>true</compileReport>
   <compilerMetrics>true</compilerMetrics>
   <soycDetailed>true</soycDetailed>

2)您应该在构建之间逐个打开GWT Compiler标志,以了解它们对它们的影响程度。 在GWT Maven插件中

  <disableCastChecking>true</disableCastChecking>
  <disableClassMetadata>true</disableClassMetadata>
  <optimizationLevel>9</optimizationLevel>

3)根据Google IO 2011在 .gwt.xml文件中提供的性能优化提示。

<set-configuration-property name="compiler.enum.obfuscate.names" value="true" />

4)在 .gwt.xml文件中的prod模式中删除GWT异常堆栈跟踪代码。

<set-property name="compiler.stackMode" value="strip" />

5)你应该打开GWT Compiler标志进行关闭。 在GWT Maven插件中

<enableClosureCompiler>true</enableClosureCompiler>

6)另外,如果您使用的是RPC,那么请注意方法签名。避免在rpc参数和返回类型中使用接口和抽象类,如List,Map,Model。它们有助于减少应用程序中的rpc占用空间。

最后

应该根据对GWT编译器报告的分析来决定codesplit。 GZIP压缩有助于减少带宽占用空间,但同时会增加浏览器和服务器开销的成本。

答案 1 :(得分:3)

SSR的许多重点。另外,不要忘记对RPC进行模糊处理,否则会因为类引用而变得臃肿。

<inherits name="com.google.gwt.user.RemoteServiceObfuscateTypeNames"/>

乔治对他的伟大GWT Blog Post提供了一些额外的提示。

答案 2 :(得分:1)

这个巨大的尺寸不适用于GXT小部件的GWT,我可以推荐你:

答案 3 :(得分:1)

您的选择很少:

  1. 使用代码分割。
  2. 减少应用中使用的小部件数量。
  3. 如果您有包含大量文字的网页(例如帮助文章),则可以将此文本推送到外部TextResource。
  4. 没有神奇的解决方案可以减少编译代码的大小。