nba*_*ari 5 python performance google-app-engine go
就每个实例的配额/使用限制而言,在Google appengine GAE中使用golang而不是在GAE中运行的其他提供的语言(如python,java,php或者它们的所有行为都相同)时,是否有相当大的改进/优势?
或者基本上任何实例,无论使用何种语言,行为都相同,并且每个实例可以处理几乎相同数量的最大请求数/秒,因为这更多地关注"GAE负载均衡器"或基础结构,而不是使用的编程语言,相同的逻辑可以应用于内存,CPU使用?
App Engine 没有明确的限制或限制,这些限制仅在使用特定语言时适用。然而,这些语言及其技术可能意味着某些限制,例如,与启动 Go 的内置 Web 服务器相比,Java 虚拟机实例本身需要更多的内存,并且启动时间要长得多(即使启用了预热请求),因此对于 Java 实例,将保留较少的内存供 Web 应用程序本身分配和使用(对于特定计划/类型和实例)。
我没有具体的措施可以比较,但是(如果是 Go):
“代码以源代码形式部署并在云中编译......Go 是第一个在 App Engine 上运行的真正编译语言。App Engine 上的 Go 使部署高效、CPU 密集型 Web 应用程序成为可能”。(来源)
如果您考虑一下,App Engine 中的其他语言都是解释型的(包括 Java,它是由虚拟机解释的字节码),而 Go 则编译为依赖于平台的本机代码并作为平台相关的本机代码运行。这应该已经说明了一些有关性能的信息。
如需“案例研究”,请查看以下博客文章:
该博客还包含数百万人使用的真实应用程序的一些性能报告:
该图表直接取自 App Engine 仪表板,显示了启动期间的平均请求延迟。正如您所看到的,即使在负载下,它也不会超过 60 毫秒,中位延迟为 32 毫秒。考虑到我们的请求处理程序正在动态进行图像操作和编码,这速度非常快。
App Engine 使用 Go 标准库中包含的 Web 服务器来为您的应用程序提供服务,因此这也意味着您可以轻松地将 Go Web 应用程序移植到 App Engine,并且您确切地知道为您的应用程序提供服务的 Web 服务器会发生什么在应用程序引擎上。
App Engine 系统状态可以被认为是官方的并且是一个很好的比较基础。
您可以单击属于特定日期和语言的任何单元格,然后获得静态和动态 GET 延迟(安全和不安全)、错误率、CPU 使用率/延迟的详细历史统计数据。这些统计数据是在已经启动并准备好提供服务的实例上测量的。
2015 年 1 月 27 日的分析结果如下:Go、Java和Python的结论:
| 归档时间: |
|
| 查看次数: |
1316 次 |
| 最近记录: |