【问题标题】:Speed issues with Google App Engine + Spring MVC + AnnotationsGoogle App Engine + Spring MVC + Annotations 的速度问题
【发布时间】:2010-12-27 20:22:57
【问题描述】:

我正在使用 spring MVC 并使用注释在 GAE 上开发应用程序。该应用程序第一次加载需要很长时间,然后只要我访问该应用程序,它就会表现良好。但是当我离开应用程序一分钟然后我再次访问它需要很长时间。我读过 ppl 有类似的问题,但没有谈论解决方案。有没有人遇到过这个问题并且能够解决它?

一种解决方案是剥离我最后选择的注释。

谢谢

【问题讨论】:

    标签: java google-app-engine spring-mvc


    【解决方案1】:

    如果一分钟内没有人点击它,GAE 就会杀死你的应用。

    【讨论】:

    • 我想到了,但我不知道是否有任何解决方案可以不这样做。
    • 使用 cron.xml 每分钟 ping 自己一次?
    • Cron(或类似的)不是一个很好的解决方案,因为它可能会产生暂时的影响,因为谷歌会打击所有试图这样做的人,如果他们想为其他人降低成本,他们会这样做。
    • 添加了一个小的 cron 作业,它可以让应用程序保持活动状态,但正如你所说,这不是一个好的解决方案。
    【解决方案2】:

    最新版本中有一个启用预编译的属性,您可以使用它来加快速度。请参阅this article 了解原因。它可能无法解决运行时启动问题,但我希望注释是编译时的。

    您可以为您的应用程序启用它 通过添加预编译启用到 你的 appengine-web.xml:

    <precompilation-enabled>true</precompilation-enabled>
    

    【讨论】:

      【解决方案3】:

      加快 Spring 初始加载的一种方法是禁用 springapp-servlet.xml 中的 &lt;context:component-scan base-package="app.controllers" /&gt; 行并手动指定应用程序中的所有控制器,如下所示:

      <bean id="rootController" class="app.controllers.RootController" ></bean>
      <bean id="otherController" class="app.controllers.OtherController" ></bean>
      

      我在 Google App Engine 上使用 Spring MVC,并且已将加载请求缩短到大约 3 秒。

      【讨论】:

      • Kyle,所以基本上,不要进行任何组件扫描。 3 秒大约多少个控制器?
      猜你喜欢
      • 2013-05-29
      • 2012-06-22
      • 2023-03-03
      • 1970-01-01
      • 2011-01-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-09-08
      相关资源
      最近更新 更多