4

我有这个基于GWT并且Sencha Ext GWT 2我遇到问题的管理站点,它加载非常缓慢,使用 Firebug 我可以看到这个

4DDF7CE1FD8584654846E8ADA9D9DECB.cache.html

现在大约 2MB,这就是加载速度慢的原因。但是,使用 GWT 2.5,我能够将编译大小减少约 15%。但是我仍然需要进一步减小尺寸。我想在采用代码拆分方法之前执行此操作。

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

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

4

4 回答 4

12

您正在盲目地解决问题。PageSpeed 之类的工具更经常有助于提高运行时性能。

1) 您应该打开 GWT 编译器的报告功能。分析报告以深入了解您的应用程序中的哪些内容对 2 MB 的贡献最大。在 GWT Maven 插件中

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

2)您应该在构建中一一打开 GWT 编译器标志,以了解它们的影响程度。在 GWT Maven 插件中

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

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

<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 编译器报告的分析做出代码拆分的决定。GZIP 压缩有助于减少带宽占用,但同时会增加浏览器和服务器开销的成本。

于 2013-01-25T04:06:56.283 回答
3

SSR 有很多优点。另外,不要忘记混淆你的 RPC,否则它们会被类引用臃肿。

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

George 在他出色的GWT 博客文章中提供了一些额外的提示。

于 2013-09-29T20:00:28.023 回答
1

您的选择很少:

  1. 使用代码拆分。
  2. 减少应用程序中使用的小部件数量。
  3. 如果您的页面包含大量文本(例如帮助文章),您可以将此文本推送到外部 TextResource。

没有神奇的解决方案可以减少编译代码的大小。

于 2013-01-24T15:23:23.957 回答
1

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

  • 使用 jetty GZip 压缩功能。
  • 尽快使用 GWT 代码吐出。
于 2013-01-24T10:41:25.710 回答