点击上方蓝色“ Go语言中文网 ”关注我们, 领全套Go资料 ,每天学习 Go 语言
背景
如果你计划构建可靠,内存安全[1],高性能的应用程序,那么 Rust&Go 无疑会是你的选择。
如果您希望从内部应用程序中获得更高的性能,则可能还需要考虑使用 gRPC[2] 而不是普通的 REST[3] API。所有这些都是减少您的计算开销的解决方案。
我尝试比较各种库以了解它们的性能,并希望对你有所帮助。
关注的库
tower-grpc[4] (Rust)
高性能 rust 库,尽管已被 tonic 替代
grpc-go[5] (Golang)
grpc 的官方 Go 模块
grpc-rust[6] (Rust)
仍在开发中,另一个 rust grpc 库。看起来很不错
tonic[7] (Rust)
tower-grpc 库的改进更新,支持新的 await 语法
grpc-node[8] (NodeJs)
包含有基准基准点
grpc-rs[9] (Rust — C bindings)
使用 grpc[10] 的 rust 库
基准测试工具
对于基准测试,我将在 gRPC 中使用与 Hey[11] 等效的 ghz[12]。
该测试将重点关注如果使用上述每个库将 10,000 个并发请求的相同负载发送到服务器,将有多少开销。我将为每个使用相同的 helloworld[13] greeter。不会为任何测试启用 TLS,因此我们可以大致了解每种测试的原始性能。
grpc-go
Summary:
Count: 10000
Total: 229.40 ms
Slowest: 6.26 ms
Fastest: 0.11 ms
Average: 1.04 ms
Requests/sec: 43591.54Response time histogram:
0.114 [1] |
0.728 [3355] |∎∎∎