谷歌Go将使用比Appengine上的Python和Java更少的资源吗?实例启动时间是否比Java和Python的启动时间更快?
go程序是作为二进制文件还是源代码上传的,如果它作为源代码上传,那么它是编译一次还是在每个实例启动时编译?
换句话说:从成本的角度来看,我是否会从使用Go in app引擎中受益?(仅考虑到发动机资源的成本而非开发时间)
谷歌Go将使用比Appengine上的Python和Java更少的资源吗?实例启动时间是否比Java和Python的启动时间更快?
是的,Go实例的内存低于Python和Java(<10 MB).
是的,Go实例的启动速度比Java和Python等同,因为运行时只需要读取单个可执行文件来启动应用程序.
即使是atm单线程,Go实例也会使用goroutine同时处理传入请求,这意味着如果1 goroutine正在等待I/O,则另一个实例可以处理传入请求.
go程序是作为二进制文件还是源代码上传的,如果它作为源代码上传,那么它是编译一次还是在每个实例启动时编译?
当使用SDK部署新版本的应用程序时,Go程序作为源代码上载并编译(一次)为二进制文件.
换句话说:从成本的角度来看,我是否会从使用Go in app引擎中受益?
Go运行时在性能/价格比方面肯定有优势,但它并不影响Peter回答所描述的其他API配额的定价.
实例的成本只是应用程序成本的一部分.我现在只使用Java运行时,所以我不知道Python或Go会有多少或更低效的东西,但我不认为它会有不同的数量级.我知道实例并不是您需要考虑的唯一成本.根据您的应用程序的作用,您可能会发现API或存储成本比运行时之间的任何微小差异更重要.无论您使用何种运行时,所有API成本都是相同的.
语言"可能"会影响这些成本:
按需前端实例
保留的前端实例
支持实例
语言独立成本:
高复制数据存储(每个存储的gig)
传出带宽(每演出)
数据存储API(每个操作)
Blobstore API storge(每个演出)
电子邮件API(每封电邮)
XMPP API(每节)
渠道API(每个渠道)
这个问题大多无关紧要.
Go应用程序的最小内存占用量小于小于Java应用程序的Python应用程序.它们都是相同的每个实例,所以除非你的应用程序在额外的堆空间下表现更好,否则这个问题就无关紧要了.
Go启动时间小于Python启动时间,小于Java启动时间.除非您的应用程序有特殊原因需要通过大量实例启动/关闭周期,否则从成本角度来看这是无关紧要的.另一方面,如果您的应用程序在非常短的时间内异常突发,启动时间可能是一个优势.
正如其他答案所提到的,许多成本在所有平台中都是相同的 - 特别是数据存储区操作.在某种程度上,Go vs Python vs Java将对实例小时账单产生影响,它与以下内容有关:
你的应用程序是否会产生大量垃圾?对于许多应用程序,最大的计算成本是垃圾收集器.到目前为止,Java是最成熟的GC,而像序列化这样的基本操作比使用Python快得多.Go的垃圾收集器似乎是一个持续的开发主题,但从粗略的网络搜索来看,似乎并不是一件值得骄傲的事情.
你的应用程序计算密集吗?对于数学运算,Java(JIT编译)和Go可能比Python更好.
这三种语言都有其优点和诅咒.在大多数情况下,你最好让其他问题占主导地位 - 你最喜欢哪种语言?