go 比java 做web开发_后端程序员一定要看的语言大比拼:Java vs. Go vs. Rust

后端程序员一定要看的语言大比拼:Java vs. Go vs. Rust

发布时间:2020-08-17 14:51:48

来源:ITPUB博客

阅读:81

作者:千锋Python唐小强

57a3725107aca867a42cb2cf78b0575b.png

这是Java,Go和Rust之间的比较。这不是基准测试,更多是对可执行文件大小、内存使用率、CPU使用率、运行时要求等的比较,当然还有一个小的基准测试,可以看到每秒处理的请求数量,我将尝试对这些数字进行有意义的解读。

为了尝试将苹果与苹果进行比较(也许是?),我在此比较中使用每种语言编写了一个Web服务。Web服务非常简单,它提供了三个REST服务端点(endpoint)。

943b053b343ee9d83d1ecb02e33ecf49.png

Web服务提供的服务端点

这三个Web服务的代码仓库托管在github上。

编译后的二进制文件尺寸

有关如何构建二进制文件的一些信息。对于Java,我使用maven-shade-plugin和mvn package命令将所有内容构建到一个大的jar中。对于Go,我使用go build。最后,我使用了cargo build --release构建Rust服务的二进制文件。

f55b2825983d08715bae06da9e85b698.png

每个程序的大小(以兆字节为单位)

编译后的文件大小还取决于所选的库/依赖项,因此,如果依赖项的身躯臃肿,则编译后的程序也将难以幸免。在我的特定情况下,针对我选择的特定库,以上是程序编译后的大小。

在后续的一个单独小节中,我会把这三个程序都构建并打包为docker镜像,并列出它们的大小,以显示每种语言所需的运行时开销。下面有更多详细信息。

内存使用情况

空闲状态

9d803b046d3be05bee4503b9b0648f3f.png

每个应用程序在内存空闲时的内存使用情况

什么?Go和Rust版本显示空闲时内存占用量的条形图在哪里?好了,它们在那里,只有JVM

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值