为什么App Engine上的JRuby应用程序需要很长时间才能启动(与Python应用程序相比)?

Maj*_*Tom 4 ruby python java google-app-engine jruby

我正在考虑在App Engine上使用JRuby,但是听说App Engine上的Juby应用程序与Python应用程序相比具有较长的启动延迟.为什么是这样?

是因为JRuby jar文件太大了,冷启动要求在应用程序开始服务之前将它们加载到内存中?这是我的猜测,但我不确定这是否是一个精确的技术解释.如果是这样,为什么Python会有所不同?

Jas*_*all 10

基本上就是这样.当您的应用程序暂时未使用时,App Engine会将其交换掉,直到另一个请求进入.

当发生这种情况时,它会加载您的应用程序所需的所有JAR,这可能需要很长时间,在某些情况下会超过10-15秒.

我对JRuby没有任何经验,但是这个页面提供了一些关于如何减少应用程序冷启动时间的提示.即使您没有严格编写vanilla Java,这些提示也应该有用.

基本上,只是不要包含您的应用程序不重视的任何JAR.