Java 为什么谷歌Appengine服务器在创建新实例后要花费大量时间处理第一个请求?

Java 为什么谷歌Appengine服务器在创建新实例后要花费大量时间处理第一个请求?,java,google-app-engine,Java,Google App Engine,我正在使用GoogleAppengineJava。我想知道为什么在创建新实例时第一次请求会花费很多时间?。我还想知道有没有最好的方法来分析Google Appenige应用程序的性能 对于新实例的高响应时间,如有任何建议,将不胜感激 当第一个请求导致AppEngine创建一个新实例时,会涉及其他任务,如加载所需的库、运行静态初始值设定项、实例化servlet类等 这些可以在新实例服务第一个请求之前完成。这就是热身请求被发明的原因。您可以告诉AppEngine在实例准备好为请求提供服务之前运行一些

我正在使用GoogleAppengineJava。我想知道为什么在创建新实例时第一次请求会花费很多时间?。我还想知道有没有最好的方法来分析Google Appenige应用程序的性能

对于新实例的高响应时间,如有任何建议,将不胜感激 当第一个请求导致AppEngine创建一个新实例时,会涉及其他任务,如加载所需的库、运行静态初始值设定项、实例化servlet类等

这些可以在新实例服务第一个请求之前完成。这就是热身请求被发明的原因。您可以告诉AppEngine在实例准备好为请求提供服务之前运行一些代码,从而消除新实例的较高响应时间。您可以在此处阅读更多关于此的信息:

也请阅读和

统计 开发人员有一个非常详细的内置统计解决方案。您必须手动启用它,然后它将出现在您的管理控制台上。它使用来“钩住”您的所有呼叫,并执行测量和统计计算

以下是关于它的更多细节:


当新实例准备就绪时,请求被路由到新实例。(我们已经在ServletContextListners中进行了昂贵的初始化,并且还在web.xml的启动加载中添加了servlets)。在这个新实例中,服务时间更长(如果在旧实例中服务相同的请求,则速度更快)。为什么会发生这种情况??您的Servlet可能引用其他可能需要加载、初始化、实例化等的类。