陈卓钰-Sonic设计原理以及字节跳动微服务场景的应用收益.pdf

编号:153864 PDF 79页 3.42MB 下载积分:VIP专享
下载报告请您先登录!

陈卓钰-Sonic设计原理以及字节跳动微服务场景的应用收益.pdf

1、Sonic 设计原理以及字节跳动微服务场景的应用收益主讲人:陈卓钰演讲嘉宾介绍陈卓钰字节跳动基础架构资深研发工程师 字节跳动服务框架 Serdes 团队核心成员 2018 年加入字节跳动,期间发起了 Sonic JSON 项目,目前主攻 JIT 编译器以及高性能服务端组件CONTENT目录2023K+01为什么要优化 JSON 编解码Sonic 初探Sonic 的优化思路0203浅谈底层架构的通用化演进04Part 01为什么要优化 JSON 编解码1.大幅改善服务性能2.节约大量机器成本3.提升终端响应速度4.改善终端用户体验JSON JavaScript Object Notation 一

2、种非常流行的数据交换格式 文本格式,独立于语言 易于阅读和处理 广泛应用于:Web API 接口 文档数据库 元数据存储*注:此处占比统计有重叠,因此相加超过 100%Part 02Sonic 初探 Benchmark 与压力测试 字节线上服务真实收益 应用场景以及与 Hertz 的集成4619.262301.99Benchmark 结果Intel(R)Core(TM)i9-9880H CPU 2.30GHz某服务压测结果 使用 json-iterator某服务压测结果 使用 Sonic线上某服务 CPU 指标部分核心服务收益汇总 API 网关 ETL 引擎 配置中心 文档数据库.API 网关

3、 ETL 引擎 配置中心 文档数据库.等几乎所有需要用到 JSON 的地方Sonic&Hertzhttps:/ Sonic 进行请求的序列化和反序列化 需要 Go 1.15 Linux|macOSPart 03Sonic 的优化思路 消除反射:JIT 编译缓存:RCU 优化算子:SIMD 能省则省:Lazy LoadJSON 编解码到底有多难?JSON 编解码到底有多难?很简单,但也不简单 JSON 只有四种基本类型 number string true/false null 以及两种组合类型 Array Objectuser:id:12345,name:example,entities:ur

4、ls: JSON 是一种文本编码 没有固定长度 基于分隔符,而不是长度前缀 难以预先分配内存 难以实现部分解析.retweeted:false,user:id:1021030416.JSON 是一种无范式(schema-less)编码 可以定义结构体类型 也可以泛型编解码(interface)难以在编译的时候确定类型 高度依赖反射func Unmarshal(data byte,v interface)error 反射是最大的瓶颈 编译期无法确定类型 需要做大量的校验 函数调用不是免费的 无法进行函数间的优化 传参需要额外的指令 函数调用本身需要时间 借助 SIMD 能更高效的处理字符串 JS

5、ON 编解码本质上是串处理 Go 代码难以借助 SIMD 的力量处理字符串 ASM 可以用 SIMD,但是又存在函数调用开销消除反射JIT神奇的黑科技 Just-In-Time 即时编译技术 一种能够在运行时生成代码的技术 适用于动态语言的运行时优化 无法在编译期间确定类型 一些常见的 JIT 实现 Java HotSpot V8 PyPy LuaJIT动态语言无法在编译期确定类型程序语法结构固定用户可能编写任意程序一旦运行就不会改变.JSON无法预知用户的类型结构体定义方法固定用户可以定义任意结构体类型一旦加载就不会改变.如何将任意结构体转换为 JSON?type User struct I

6、DintNamestringEmail stringID:1,Name:Tom,Email: 如何将任意结构体转换为 JSON?1.写下 2.写下字段名,以及 3.写下字段的值4.如果还有更多字段 写一个 然后转到第 2 步5.写下,结束:,type User struct IDintNamestringEmail stringID:1,Name:Tom,Email:type User struct IDintNamestringEmail stringID:1,Name:Tom,Email: 如何将任意结构体转换为 JSON?1.写下 2.写下字段名,以及 3.写下字段的值4.如果还有更多字

友情提示

1、下载报告失败解决办法
2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
4、本站报告下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。

本文(陈卓钰-Sonic设计原理以及字节跳动微服务场景的应用收益.pdf)为本站 (2200) 主动上传,三个皮匠报告文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三个皮匠报告文库(点击联系客服),我们立即给予删除!

温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。
客服
商务合作
小程序
服务号
折叠