java - 如何加快 gwt 编译器的速度?

标签 java performance gwt

我们开始在我们的项目中更多地使用 GWT,而 GWT 编译器的性能变得越来越烦人。

我们将开始改变我们的工作实践以缓解该问题,包括更加强调托管模式浏览器,这会将运行 GWT 编译器的需要推迟到以后,但这会带来风险,特别是直到比我们想要的晚得多时才发现真正的浏览器的问题。

理想情况下,我们希望 GWT 编译器本身更快 - 编译一个相当小的应用程序需要一分钟时间。但是,我们使用 compile 是一种相当幼稚的方式,所以我希望我们可以快速轻松地获得一些 yield 。

我们目前正在调用 com.google.gwt.dev.Compiler 作为来自 ant Ant 目标的 java 应用程序,具有 256m 的最大堆和大量堆栈空间。编译器由 Ant 使用 fork=true 和最新的 Java 6 JRE 启动,以尝试利用 Java6 改进的性能。我们将主 Controller 类与应用程序类路径一起传递给编译器,然后就可以了。

我们还能做些什么来获得额外的速度?我们能不能给它更多的信息,让它花更少的时间去发现要做什么?

我知道我们可以告诉它只编译一个浏览器,但我们需要做多浏览器测试,所以这不太实用。

此时欢迎所有建议。

最佳答案

让我们从令人不安的事实开始: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 使用默认语言环境,这会减少编译时的一些额外开销。

底线:您不会在编译器性能上获得数量级的提升,但是通过几次放松,您可以在这里和那里节省几分钟。

关于java - 如何加快 gwt 编译器的速度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1011863/

相关文章:

java - Spring MVC Rest - 我如何知道用户在等待响应时是否失去连接?

java - 我想启用矩阵变量,但它显示了消息

javascript - 我怎样才能摆脱 AngularJS 中所有重复的 watch ?

python - 组合具有相同列值的 pandas DataFrame 的最有效方法

php - GWT 前端(托管模式)和 PHP 后端(apache)同时在本地主机上?

java - 仅在运行jar文件时发生空指针异常 - Scala Spark

java - Feign 客户端调用(对 http 服务)在运行时进行调用时从 GET 请求转换为 POST

python - 使用 set literals 更快地设置包含

java - 类不会在 GWT 应用程序中序列化

java - 使用 FileWriter 编写 java 类并创建生成类的实例