Google Go vs Python和Java在Appengine上的资源使用情况

2022-08-31 19:52:28

google Go在Appengine上使用的资源会比Python和Java少吗?实例的启动时间是否比 Java 和 Python 的启动时间快?

go程序是作为二进制文件还是源代码上传,如果它作为源代码上传,那么它是否编译一次或在每次实例启动时编译?

换句话说:从成本角度来看,在应用引擎中使用 Go 会让我受益吗?(只考虑应用资源的成本,而不是开发时间)


答案 1

google Go在Appengine上使用的资源会比Python和Java少吗?实例的启动时间是否比 Java 和 Python 的启动时间快?

是的,Go 实例的内存低于 Python 和 Java (< 10 MB)。

是的,Go 实例的启动速度比 Java 和 Python 等效实例快,因为运行时只需要读取单个可执行文件即可启动应用程序。

此外,即使是 atm 单线程的,Go 实例也会使用 goroutines 同时处理传入请求,这意味着如果 1 个 goroutine 正在等待 I/O,另一个 goroutine 可以处理传入的请求。

go程序是作为二进制文件还是源代码上传,如果它作为源代码上传,那么它是否编译一次或在每次实例启动时编译?

Go 程序作为源代码上传,并在使用 SDK 部署应用程序的新版本时编译(一次)到二进制文件。

换句话说:从成本角度来看,在应用引擎中使用 Go 会让我受益吗?

Go运行时在性能/价格比方面绝对具有优势,但是它不会影响Peter回答中描述的其他API配额的定价。


答案 2

实例成本只是应用程序成本的一部分。我现在只使用Java运行时,所以我不知道Python或Go的效率会有多大,但我不认为它会有数量级的差异。我知道实例不是您需要考虑的唯一成本。根据应用的功能,你可能会发现 API 或存储成本比运行时之间的任何细微差异都要大。无论您使用什么运行时,所有 API 成本都将相同。

语言“可能”会影响以下成本:

  • 按需前端实例
  • 预留前端实例
  • 支持的实例

与语言无关的费用:

  • 高复制数据存储(每存储千兆字节)
  • 传出带宽(每千兆字节)
  • 数据存储 API(每次操作)
  • Blobstore API storge (per gig)
  • 电子邮件 API(每封电子邮件)
  • XMPP API (per stanza)
  • 通道 API(每个通道)

推荐