Java 谷歌应用程序引擎-这只是一个侥幸,还是改变应用程序的版本可以改善冷启动时间?

Java 谷歌应用程序引擎-这只是一个侥幸,还是改变应用程序的版本可以改善冷启动时间?,java,google-app-engine,Java,Google App Engine,情况是这样的:我有一个冷启动时间约为4秒的应用程序。我试图通过删除一些我并不真正需要的库和代码来提高冷启动时间。完成此操作后,冷启动时间约为3秒延迟,使用了3秒CPU时间 我更改了appengine-web.xml中的版本号,没有其他更改。现在我有了两个版本的应用程序,它们的代码完全相同,启动并运行 对于冷启动,较新版本使用1800ms到1900ms的CPU时间 对于冷启动,旧版本使用2400ms到3000ms的CPU时间 每个版本都要求使用完全相同的jsp页面来测试冷启动时间。到目前为止,我已

情况是这样的:我有一个冷启动时间约为4秒的应用程序。我试图通过删除一些我并不真正需要的库和代码来提高冷启动时间。完成此操作后,冷启动时间约为3秒延迟,使用了3秒CPU时间

我更改了appengine-web.xml中的版本号,没有其他更改。现在我有了两个版本的应用程序,它们的代码完全相同,启动并运行

对于冷启动,较新版本使用1800ms到1900ms的CPU时间

对于冷启动,旧版本使用2400ms到3000ms的CPU时间


每个版本都要求使用完全相同的jsp页面来测试冷启动时间。到目前为止,我已经为每个版本取样了7次冷启动。

听起来像是侥幸,我不知道更改程序的版本号会如何产生速度变化。除非出现库更新或类似情况。

版本号会在某个地方更改执行路径吗?也许在应用程序运行之前发生的XML解析器或数据绑定中?

hmmm,我认为可能存在应用程序外观的某种缓存,因为gae上载基本上是差异更新(只发送更改过的文件)

如果您在一个版本id上发布了许多更改,那么GAE可能有许多代码的快照

因此,如果您做了重大更改(这是我的经验法则),您应该始终更改应用程序的版本,以确保。附加提交我只用于修复bug,而不用于大型重构/添加或删除jar。我想你也有了新的日志,只需“刷新安装”你的应用程序,这样GAE就可以做一些优化


同意吗?

使用完全相同的代码和库,但是我已经开发了一个多月的旧版本。当你上传你的应用程序时,可能旧的库没有被完全清理,或者什么的?这是可能的,我会把两个代码都拿出来,然后保证它们在同一台机器上运行相同的库,并运行更多的测试。由于速度变化,有些东西明显不同,但我仍然怀疑它的版本号。当你有数据显示出明显的差异时,结论应该是“有一个我没有想到的差异”,而不是“数据一定是错误的”。我们总是忘记事情(或错误地分析),但很难在分布的每一侧随机获得五个数据点。@Jefromi Yep,我希望有人能想出一些我没有想到的原因,或者谷歌的人可以证实这可能发生。@Spines:这篇评论在很大程度上是针对Mimisbrunr的假设,即这是一次侥幸,因为没有明显的解释。我只是觉得它更适合作为一个全球性的评论,防止更多的“这只是一个侥幸”的回答。你错过了今天的IRC聊天。你可以直接问开发人员!您可能已经检查过了,但是两个版本的代码是否使用相同的sdk?你最近上传了这两个版本吗?