dotNET 5中的gRPC性能改进,超Golang和C++( 三 )
文章插图
给Google.Protobuf添加对缓冲区序列化的支持只是第一步 。 要使用gRPC for .NET , 需要更多工作才能利用新功能:
向Grpc.Core.Api中的gRPC序列化抽象层添加了ReadOnlySequence API和IBufferWriter
API 。
更新gRPC代码生成 , 以将Google.Protobuf中的更改粘贴到Grpc.Core.Api 。
更新了.NET的gRPC , 以使用Grpc.Core.Api中的新序列化抽象 。 这段代码是Kestrel和gRPC之间的集成 。 由于Kestrel的IO建立在System.IO.Pipelines之上 , 因此可以在序列化过程中使用其缓冲区 。
最终结果是gRPC for .NET将Protobuf消息直接序列化到Kestrel的请求和响应缓冲区 。 中间数组分配和字节副本已从gRPC消息序列化中删除 。
总结性能是.NET和gRPC的基本功能 , 随着云应用崛起 , 性能变得越来越重要 。 较低的延迟和较高的吞吐量意味着更少的服务器 。 高性能的应用可以节省金钱 , 减少能耗和构建绿色应用程序的机会 。
文章插图
【dotNET 5中的gRPC性能改进,超Golang和C++】gRPC , Protobuf和.NET 5进行大量的尝试和更改 , 用来提高性能 。 基准测试表明 , gRPC服务器RPS提高了60% , gRPC客户端RPS提高了230% 。
- 脸上|那个被1亿锦鲤砸中的“信小呆”:失去工作后,脸上已无纯真笑容
- 夹缝|“互联网卖菜”背后:夹缝中的菜贩与巨头们的垄断
- 骁龙865|5G手机中的性能怪兽,256+120W闪充,比iPhone12值得买
- RFID在冷链物流中的作用-RFID冷链资产管理解决方案
- 成员|千元机中的实力派再添新成员,三部千元机,一部更比一部强!
- Kotlin集合vs Kotlin序列与Java流
- 金融市场中的NLP——情感分析
- 二叉树:求搜索树中的众数
- USB接口中的皇帝!浅析雷电Thunderbolt的前生今世
- 面试官:聊聊 etcd 中的 Raft 吧