1 回答
TA贡献1880条经验 获得超4个赞
App Engine 没有明确的限制或限制,仅在使用特定语言时才适用。然而,这些语言及其技术可能意味着某些限制,例如,与启动 Go 的内置 Web 服务器相比,Java 虚拟机实例本身需要更多的内存和更长的启动时间(即使启用了预热请求),因此在 Java 实例的情况下,webapp 本身将保留更少的内存来分配和使用(对于特定的计划/类型和实例)。
我没有具体的措施来比较,但是(在 Go 的情况下):
“代码以源代码形式部署并在云中编译......Go 是第一个在 App Engine 上运行的真正编译语言。App Engine 上的 Go 使部署高效、CPU 密集型 Web 应用程序成为可能”。(来源)
如果你仔细想想,App Engine 中的其他语言都是解释性的(包括 Java,它是由虚拟机解释的字节码),而 Go 被编译成依赖于平台的本机代码并运行。这应该已经说明了一些关于性能的信息。
有关“案例研究”,请查看以下博客文章:
从零到 Go:24 小时内在 Google 首页上发布
该博客还包含一些有关数百万人使用的真实应用的性能报告:
此图表 - 直接取自 App Engine 仪表板 - 显示启动期间的平均请求延迟。如您所见,即使在负载下它也不会超过 60 毫秒,平均延迟为 32 毫秒。考虑到我们的请求处理程序正在即时进行图像处理和编码,这非常快。
App Engine 使用 Go 标准库中包含的网络服务器来为您的应用程序提供服务,这也意味着您可以轻松地将 Go 网络应用程序移植到 App Engine,并且您确切地知道从为您的应用程序提供服务的网络服务器会得到什么在 App Engine 上。
找到 Python、Java 和 Go 的官方时间比较
该App Engine的系统状态可以被认为是官方和良好的比较基础。
您可以单击属于特定日期和语言的任何单元格,您可以获得静态和动态 GET 延迟(安全和不安全)、错误率、CPU 使用率/延迟的详细历史统计数据。这些统计信息是在一个已经启动并准备好提供服务的实例上测量的。
对2015 年 1 月 27 日这一天的分析,以下是Go、Java和Python的结论:
所有动态延迟大致相同
CPU的等待时间(计算33次Fibonacci数)是最好的Java,然后去和最慢的是Python的。
静态文件服务时间大致相同,但 Go 最快。
- 1 回答
- 0 关注
- 194 浏览
添加回答
举报