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

标签 java python ruby google-app-engine jruby

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

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

最佳答案

基本上就是这样。如果您的应用有一段时间未被使用,App Engine 会将其换出,直到收到另一个请求。

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

我对 JRuby 没有任何经验,但是 this page有一些关于如何减少应用冷启动时间的技巧。即使您不是严格编写 vanilla Java,这些技巧也应该有用。

基本上,只要不包含您的应用不高度依赖的任何 JAR。

关于java - 为什么 App Engine 上的 JRuby 应用程序需要很长时间才能启动(与 Python 应用程序相比)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2547498/

相关文章:

java - 如何从输入文件中读取指定的字符串,然后读取其后面的下一个单词

java - 对 JSONArray 中的每一行使用相同的 ResultSet

python - 递归添加到集合

ruby - 如何组合两个 block 来简化我的代码?

ruby - 为什么 ruby​​ 不支持方法重载?

java - eclipse RCP : Why is the view missing when running as a Product?

java - String.matches 不匹配模式

python - 无法使用 PyFITS 打开文件

python - 如何手动创建 scikit-learn 树?

ruby - 使用 ruby​​ 将 unicode 转换为字符