Thrift 作为一个高性能编解码协议,在CloudWeGo里被广泛使用。
在性能上,通过使用 JIT编译技术,Frugal带来了更强的编解码性能,可以达到传统编解码方式的 5 倍;在易用性上,Frugal不需生成编解码代码,极大地改善了用户的使用体验。
传统的 Thrift 编解码方式,要求用户必须要先生成编解码代码,不仅增加了用户使用负担,而且后续的变更可能带来大量的改动,导致代码 Review 难度大增。
通过 JIT 技术在运行时动态生成编解码机器代码, Frugal 能帮助开发者避免这一问题。
用户通过使用 Frugal 不再需要生成编解码代码。团队基于 JIT 技术生成了比 Go 语言编译器性能更好的机器代码,使得 Frugal 在进行 Thrift 编解码时,比传统通过生成代码进行编解码的方式性能表现更佳。
EMC体育
团队使用了 Thrift大仓库中的 Thrift 文件进行测试,总计 21307 个 Thrift 文件,全部通过了编解码测试。
搭配 Kitex 框架使用,用户不需再生成大量的编解码代码,使仓库变得干净整洁EMC体育,Review 时也不用再带上一堆无意义的 DiffEMC体育,性能也更加优越。
如果只需要使用 Thrift 的编解码能力,同时也定义好了 IDL,那么只需要用 Thriftgo 生成 IDL 对应的 Go 语言 Struct,就可以轻松使用 Frugal 的编解码能力。
更简单的使用方式,可以直接定义好 Go 语言 Struct 后,给每个 Field 带上 Frugal 所需的 Tag,就可以直接使用 Frugal 进行编解码了。
下一个版本 Kitex 将默认集成 Frugal,用户不再需要使用 Feature 分支来进行使用。
Frugal 将持续进行 SSA 后端,包括 SIMD 指令优化等特性的实现,预计在后续版本,将会带来性能更大幅度的提升。
5 月,CloudWeGo 社区第一期源码解读活动已经上线,欢迎大家持续关注并积极参与!
面包也写作麺包,一种用五谷(一般是麦类)磨粉制作并加热而制成的食品。以小麦粉为主要原料,以酵母、鸡蛋、油脂、糖、盐等为辅料,加水调制成面团,经过分割、成形、醒发、...
面包也写作麺包,一种用五谷(一般是麦类)磨粉制作并加热而制成的食品。以小麦粉为主要原料,以酵母、鸡蛋、油脂、糖、盐等为辅料,加水调制成面团,经过分割、成形、醒发、...
面包也写作麺包,一种用五谷(一般是麦类)磨粉制作并加热而制成的食品。以小麦粉为主要原料,以酵母、鸡蛋、油脂、糖、盐等为辅料,加水调制成面团,经过分割、成形、醒发、...
面包也写作麺包,一种用五谷(一般是麦类)磨粉制作并加热而制成的食品。以小麦粉为主要原料,以酵母、鸡蛋、油脂、糖、盐等为辅料,加水调制成面团,经过分割、成形、醒发、...
Copyright © 2018-2024 emc体育·(中国)app客户端下 版权所有 xml地图 网站地图 备案号:沪ICP备20008217号-1