java - Google App Engine - 这只是一个侥幸,还是可以更改应用程序的版本来缩短冷启动时间?

标签 java google-app-engine

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

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

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

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

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

最佳答案

嗯,我认为您的应用程序的外观可能有某种缓存,因为 gae 上传基本上是差异更新(您只发送更改的文件)。

如果您在一个版本 ID 上发布了许多更改,GAE 可能会拥有您的代码的许多快照。

因此,如果您进行重大更改(这是我的经验法则),您应该始终更改应用程序的版本,以确保万无一失。我仅将额外提交用于错误修复,而不用于大型重构/添加或删除 JAR。我认为此时您也有新的日志,并且只需“刷新安装”您的应用程序,以便 GAE 可以进行一些优化...

同意吗?

关于java - Google App Engine - 这只是一个侥幸,还是可以更改应用程序的版本来缩短冷启动时间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2463937/

相关文章:

java - 带有 mvn devserver 的 Google App Engine Java 失败 : missing "guestbook/target/guestbook-1.0-SNAPSHOT"

java - 为什么我的 @SuppressWarnings ("unchecked") 被忽略?

java - 使用 Autowiring bean 调用实例方法

python - 有没有办法在 App Engine 中实现长时间运行的事务?

python - 既然不允许使用 Content-Length header ,是否可以在 GAE 应用程序中设置 blob 下载大小?

google-app-engine - GAE 应用程序.yaml : How to set env variable that contains periods?

java - Apache Kafka 中数据的增量加载

Java util Timer - 线程添加

java - 与java中的.txt文件相比,读取/写入一组到.ser文件

java - 如何为 App Engine/Java 上的单个请求暂停 appstats?