当我为Vaadin创建一个简单的“hello world”应用程序时,将其部署到服务器,并在浏览器中键入应用程序URL,我必须等待大约5-10秒才能显示该应用程序。下次运行很快,但是当我重新部署或热插拔类时,我不得不再次等待。当我将它添加到数据库启动时间,服务器启动时间等时,它需要很长时间。
有没有办法消除Vaadin创业的这种缓慢?这很重要,因为每个额外的缓慢使得修改+运行+测试编程周期更令人沮丧 - 并非所有代码都可以进行单元测试,测试某些东西的唯一方法是手动修改+运行+测试。
GWT调试模式存在类似问题。因为Vaadin是基于GWT的,也许这种缓慢的原因不是在Vaadin而是在GWT中?
我的环境:IntelliJ 9 + Tomcat 6 + Windows 7 64位+快速Core 2 Duo
答案 0 :(得分:2)
如果重新启动Vaadin应用程序时速度很慢:检查您的Application.init()方法是否造成任何太重 - 数据库连接,加载大量数据等。 您可以使用URL参数?restartApplication
强制在Vaadin中重新启动此会话如果热部署速度很慢,即使应用程序未重新启动(UI状态仍然存在):这与Vaadin的客户端(GWT)部分有关。可能是某种程度上完全忽略了缓存。 Widgetset优化可能会有所帮助。
答案 1 :(得分:2)
Vaadin大部分时间都在这里度过 com.vaadin.terminal.gwt.server.AbstractApplicationServlet#serveStaticResourcesInVAADIN (实际上是servlet容器,而不是vaadin本身)
我认为这是因为vaadin.jar太大了。
所以你可以从vaadin.jar中提取VAADIN目录到你的webRoot,并且应用程序启动时间会减少。
其他非常好(但付费)的解决方案是http://zeroturnaround.com/jrebel
答案 2 :(得分:1)
问题是由第一次加载的所有Java类引起的,后续调用可以使用缓存的类。
然而,5-10秒,imho,真的不是那么糟糕,我的情况要糟糕得多。