3

当我为 Vaadin 创建一个简单的“hello world”应用程序,将其部署到服务器,并在浏览器中输入应用程序 URL 时,我必须等待大约 5-10 秒才能显示应用程序。下一次运行很快,但是当我重新部署或热交换类时,我不得不再次等待。当我将它添加到数据库启动时间、服务器启动时间等时,它需要的时间太长。

有什么办法可以消除这种 Vaadin 启动缓慢的情况吗?这很重要,因为每次额外的缓慢都会使修改+运行+测试的编程周期更加令人沮丧-并非所有代码都可以进行单元测试,测试某些东西的唯一方法是手动修改+运行+测试。

GWT 调试模式也存在类似问题。因为 Vaadin 是基于 GWT 的,也许这种缓慢的原因不是在 Vaadin 中,而是在 GWT 中?

我的环境:IntelliJ 9 + Tomcat 6 + Windows 7 64-bit + fast Core 2 Duo

4

3 回答 3

2

如果 Vaadin 应用程序重新启动时速度很慢:检查您的 Application.init() 方法是否没有进行任何繁重的操作 - 数据库连接、加载大量数据等。您可以使用 URL 参数 ?restartApplication 在 Vaadin 中强制此会话重新启动

如果即使应用程序没有重新启动热部署也很慢(UI 状态仍然存在):这与 Vaadin 的客户端 (GWT) 部分有关。可能是缓存在某种程度上被完全忽略了。小部件集优化可能会有所帮助。

于 2010-10-20T15:39:42.617 回答
2

Vaadin 大部分时间都花在这里 com.vaadin.terminal.gwt.server.AbstractApplicationServlet#serveStaticResourcesInVAADIN (实际上是 servlet 容器,而不是 vaadin 本身)

我认为这是因为 vaadin.jar 太大了。

因此,您只需将 VAADIN 目录从 vaadin.jar 提取到您的 webRoot 中,应用程序启动时间就会减少。

其他非常好的(但付费)解决方案是http://zeroturnaround.com/jrebel

于 2011-11-27T12:21:20.253 回答
1

问题是第一次加载所有Java类,后续调用可以使用缓存的类。

然而 5-10 秒,恕我直言,真的没那么糟糕,我的情况更糟。

于 2010-10-11T10:01:30.473 回答