go tcp VS rust tcp socket性能测试对比

6 篇文章 0 订阅

初略测试,仅供参考
client和server在同一台机器(2.2 GHz 六核Intel Core i7/ssd硬盘/16g内存 )

test 1

读写分离(启动两个task/goroutine,一个读一个写),客户端生成文件,客户端从文件中读取数据写入到服务端

在服务端计算速率(收到的bytes/second)

文件20g 每次发送数据4k

TypeRate
go Tcp574m/s
rust Tcp / async_std130m/s
rust Tcp / tokio174m/s

文件20g 每次发送数据40k

TypeRate
go Tcp1775m/s
rust Tcp / async_std673m/s
rust Tcp / tokio542m/s

test 2

读写分离(启动两个task/goroutine) ,客户端不生成文件,客户端直接发送数据到服务端

每次发送的包大小为4k/go buffer为默认4k/ rust buffer为默认8k

TypeRate
go Tcp560~603m/s
go Tcp / bufio500m/s
rust Tcp / async_std1000 m/s
rust Tcp / async_std / BufWriter,BufReader1280m/s
rust Tcp / tokio900m/s
rust Tcp / tokio / BufWriter,BufReader1150m/s

每次发送的包大小为40k/go buffer为默认4k/ rust buffer为默认8k

TypeRate
go Tcp1192m/s
go Tcp / bufio1500m/s
rust Tcp / async_std1444m/s
rust Tcp / async_std/ BufWriter,BufReader1500m/s
rust Tcp / tokio934m/s
rust Tcp / tokio / BufWriter,BufReader1180m/s

test 3

读写不分离(不启动task/goroutine) ,客户端不生成文件,客户端直接发送数据到服务端

每次发送的包大小为4k/go buffer为默认4k/ rust buffer为默认8k

TypeRate
go Tcp190m/s
go Tcp /bufio220m/s
rust Tcp / async_std100m/s
rust Tcp / async_std / BufWriter,BufReader110m/s
rust Tcp / tokio129m/s
rust Tcp / tokio / BufWriter,BufReader143m/s

每次发送的包大小为40k/go buffer为默认4k/ rust buffer为默认8k

TypeRate
go Tcp2250m/s
go Tcp / bufio2250m/s
rust Tcp / async_std676m/s
rust Tcp / async_std / BufWriter,BufReader780m/s
rust Tcp / tokio733m/s
rust Tcp / tokio / BufWriter,BufReader820m/s
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值