Google App Engine - 如何改善冷启动JVM时间?

时间:2010-03-17 15:50:10

标签: java google-app-engine

我对改善冷启动时间并不陌生,我花了很多时间尝试不同的事情。我想尽可能知道完全 Google App Engine在冷启动时所做的事情。

我有一个日志声明,如http://code.google.com/intl/nl/appengine/kb/java.html#performance所述,以显示我的代码何时首次获得控制权。

我有两个应用程序,我一直在测试,一个很简单,我的代码在大约1秒后首先得到控制。

另一个有很多文件和东西,我的代码在大约2秒后首先获得控制权。这个库不再使用任何库,但是它确实有更多的jsps和java类。

即使没有使用类,可能只是让更多的java和jsp类导致冷启动更慢?

2 个答案:

答案 0 :(得分:2)

那篇文章是一个非常好的资源。在日志声明部分后面稍晚:

  

如何加快加载请求的速度?

     

以下是一些建议:

     
      
  1. 懒洋洋地执行应用程序初始化,而不是急切地执行应用程序初始化,因此它不会在单个请求中发生。
  2.   
  3. 在JVM之间共享昂贵的初始化。例如,将读取或计算成本高昂的数据放入内存缓存中,其他JVM在启动时可以快速读取。
  4.   
  5. 在合理的情况下将初始化从应用程序启动转移到构建时。例如,在构建过程中将复杂数据文件转换为简单,快速读取的数据文件。
  6.   
  7. 使用较小的依赖项。例如,更喜欢为您的任务优化的库,而不是执行非常繁重的初始化的大型库。
  8.   

答案 1 :(得分:2)