没有开启 Hyper-threading、没有 Cache),一块内存。上面运行一个 C 程序在执行`i++`,对应的汇编代码是`add 1, i`。分析一下这里`add`指令的语义,需要两个操作数,源操作数 SRC 和目的操作数 DEST,实现的功能是`DE... movq %rsp, %rbp .cfi_def_cfa_register 6 movl $1, -12(%rbp) leaq -12(%rbp), %rax movq %rax, -8(%rbp).L2: movq -8(%rbp), %rax lo...
同时结合 lazy-load 设计思想,它也为不同业务场景打造了一套全面高效的 API。自 2021 年 7 月份发布以来, sonic 已被抖音、今日头条等业务采用,累计为字节跳动节省了数十万 CPU 核。## 为什么要自研 JSON 库... 另一方面来自于 sonic-JIT 能控制底层 CPU 指令,在运行时建立了一套独立高效的 ABI(Application Binary Interface)体系:- 将使用频繁的变量放到固定的寄存器上(如 JSON buffer、结构体指针),尽量避免 memory l...