如何加速gwt编译器?

问题:

我们开始在项目中更多地使用GWT,GWT编译器的性能变得越来越烦人了。
我们将开始改变我们的工作实践来减轻问题,包括更加强调托管模式浏览器,这样就延续了在更晚的时间之前运行GWT编译器的需要,但这带来了自己的风险,特别是没有真正的浏览器捕捉问题,直到比我们想要的更晚。
理想情况下,我们想使GWT编译器本身更快 – 一分钟内编译一个相当小的应用程序正在吃小便。但是,如果一个相当天真的方式,我们正在使用编译,所以我希望我们能够快速而容易地获得收益。
我们目前正在使用ant Ant目标调用com.google.gwt.dev.Compiler作为java应用程序,最大堆栈为256m,堆栈空间大。 Ant使用fork = true和最新的Java 6 JRE启动编译器,以尝试利用Java6的改进性能。我们将主控制器类与应用程序类路径一起传递给编译器,并将其关闭。
我们还能做些什么来获得更多的速度?我们可以给它更多的信息,所以花费更少的时间来发现做什么?
我知道我们只能为一个浏览器编译,但是我们需要进行多浏览器测试,所以这并不实际。
此时欢迎所有的建议。

回答:

让我们从不舒服的事实开始:GWT编译器的性能真的很糟糕。你可以在这里和那里使用一些黑客,但你不会得到更好的表现。
您可以做的一个很好的性能攻击是仅针对特定的浏览器编译,通过在gwt.xml中插入以下行,

<define-property name="user.agent" values="ie6,gecko,gecko1_8"></define-property>

或gwt 2.x语法,仅适用于一个浏览器:

<set-property name="user.agent" value="gecko1_8"/>

例如,这将编译您的IE和FF应用程序。如果您知道您只使用特定的浏览器进行测试,则可以使用此小黑客。
另一个选项:如果您正在使用多个区域设置,并且再次仅使用一个测试,您可以将它们全部注释出来,以便GWT将使用默认语言环境,这样可以减少编译时的额外开销。
底线:您不会在编译器性能方面获得大幅度的提升,但是通过几次放松,您可以在这里和那里刮几分钟。

 
 
Code问答: http://codewenda.com/topics/python/
Stackoverflow: How do I speed up the gwt compiler?

*转载请注明本文链接以及stackoverflow的英文链接

发表评论

电子邮件地址不会被公开。 必填项已用*标注

+ 71 = 72