当前位置:  开发笔记 > 编程语言 > 正文

Google上的google Go与Python和Java的资源使用情况

如何解决《Google上的googleGo与Python和Java的资源使用情况》经验,为你挑选了3个好方法。

谷歌Go将使用比Appengine上的Python和Java更少的资源吗?实例启动时间是否比Java和Python的启动时间更快?

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

换句话说:从成本的角度来看,我是否会从使用Go in app引擎中受益?(仅考虑到发动机资源的成本而非开发时间)



1> proppy..:

谷歌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配额的定价.


我不知道有关统计数据的信息,但我认为他可能知道他在说什么,因为他是Google App Engine团队的成员.对于内存消耗,你可以在这里看到:http://shootout.alioth.debian.org/u64/benchmark.php?test = all&lang = go&lang2 = python3(但这是python3,并不清楚它与GAE有多接近)
以下是使用2个非平凡的示例应用程序的更多细节:1个python app w/2依赖项(google apis和mapreduce API)平均消耗50MB并且需要15秒才能启动.另一个Go应用程序w/1依赖(google apis)平均消耗8MB,启动1.5s.
听起来很有趣......得到任何统计数据来支持这些断言?

2> Peter Recore..:

实例的成本只是应用程序成本的一部分.我现在只使用Java运行时,所以我不知道Python或Go会有多少或更低效的东西,但我不认为它会有不同的数量级.我知道实例并不是您需要考虑的唯一成本.根据您的应用程序的作用,您可能会发现API或存储成本比运行时之间的任何微小差异更重要.无论您使用何种运行时,所有API成本都是相同的.

语言"可能"会影响这些成本:

按需前端实例

保留的前端实例

支持实例

语言独立成本:

高复制数据存储(每个存储的gig)

传出带宽(每演出)

数据存储API(每个操作)

Blobstore API storge(每个演出)

电子邮件API(每封电邮)

XMPP API(每节)

渠道API(每个渠道)



3> stickfigure..:

这个问题大多无关紧要.

Go应用程序的最小内存占用量小于小于Java应用程序的Python应用程序.它们都是相同的每个实例,所以除非你的应用程序在额外的堆空间下表现更好,否则这个问题就无关紧要了.

Go启动时间小于Python启动时间,小于Java启动时间.除非您的应用程序有特殊原因需要通过大量实例启动/关闭周期,否则从成本角度来看这是无关紧要的.另一方面,如果您的应用程序在非常短的时间内异常突发,启动时间可能是一个优势.

正如其他答案所提到的,许多成本在所有平台中都是相同的 - 特别是数据存储区操作.在某种程度上,Go vs Python vs Java将对实例小时账单产生影响,它与以下内容有关:

你的应用程序是否会产生大量垃圾?对于许多应用程序,最大的计算成本是垃圾收集器.到目前为止,Java是最成熟的GC,而像序列化这样的基本操作比使用Python快得多.Go的垃圾收集器似乎是一个持续的开发主题,但从粗略的网络搜索来看,似乎并不是一件值得骄傲的事情.

你的应用程序计算密集吗?对于数学运算,Java(JIT编译)和Go可能比Python更好.

这三种语言都有其优点和诅咒.在大多数情况下,你最好让其他问题占主导地位 - 你最喜欢哪种语言?

推荐阅读
重庆制造漫画社
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有