我的管理网站基于GWT
和Sencha Ext GWT 2
我遇到问题,加载速度非常慢,
使用Firebug我可以看到这个
现在4DDF7CE1FD8584654846E8ADA9D9DECB.cache.html
约为2MB,这就是加载速度慢的原因。然而,使用GWT 2.5我可以减少编译大小 大约15%。但是我仍然需要进一步缩小尺寸。我想在采用Code Split方法之前这样做。
使用PageSpeed我得到了这个优化结果,比如Minify HTML / Javascript等,但是它很难专门用于GWT代码。
除了选择混淆模式之外,还有哪些方法可以最小化编译大小。是否像压缩模式?
答案 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)
您的选择很少:
没有神奇的解决方案可以减少编译代码的大小。