当前位置: 首页 > 面试题库 >

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

李云
2023-03-14
问题内容

我们开始在我们的项目中大量使用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编译你的应用程序。如果你知道仅使用特定的浏览器进行测试,则可以使用此小技巧。

另一个选择:如果你使用多个html" target="_blank">语言环境,并且再次仅使用一个语言环境进行测试,则可以将它们全部注释掉,以便GWT将使用默认语言环境,这可以节省编译时的额外开销。

最重要的是:你不会在编译器性能上得到数量级的提高,但是可以放轻松一些,你可以在这里和那里节省几分钟。



 类似资料:
  • 我们的团队试图从GWT 2.4.0升级到2.5.0,但现在我们面临的问题是编译器引发了一个异常。以下是编译器日志: 绑定:用户。代理=safari绑定:编译器。useSourceMaps=true绑定:locale=en编译模块应用程序。m8。网状物AGM验证单元:第一次通过时忽略了3个有编译错误的单元。编译时将-strict或-logLevel设置为TRACE或DEBUG以查看所有错误。[错误]

  • 我找到了一些技巧(通过Gradle和Android Studio构建和运行应用程序要比通过Eclipse慢)来加快Android Studio(Gradle)的编译过程,但我仍然认为它太慢了。编译项目并在设备上运行大约需要15秒。 gradle.properties已设置为: org.gradle.daemon=true 编辑三:Android Studio2.0似乎让我们从所有的包袱中解脱出来!

  • 在导入python2.7中的tenstorflow后,我使用以下命令:

  • 当我使用“loglevel=all”时,我得到一行输出“checking for updates”,然后它挂起。 我尝试创建一个新的项目并复制源文件--没有改变。

  • 我无法在GWT中编译为js。 devmode一如既往地运行良好。我在编译器之间做了很多更改,所以不知道确切的位置。 什么可以解决这个问题? [gwt 2.5 AE 1.7.1] java.lang.RuntimeException:com.google.gwt.dev.javac.ComilationUnit.getTypes(CompilationUnit.java:324)的com.goole