Lobsters | 原文链接 | 2026-09-05 收录

新版 Go JSON API:快两倍还是慢 1.5 倍?Daniel Lemire 的实测基准

来源: lemire.me — 2026-08-29

概述

Daniel Lemire 对 Go 1.27 引入的新 JSON 包 encoding/json/v2 做基准实测。标准库里新出现的 json/v2 与原 API 长得几乎一样,但两者在 Unicode 校验、大小写敏感等语义上有差异,并非直接可替换;同时原编码/json 也被重实现了新引擎之上(可用 GOEXPERIMENT=nojsonv2 切回旧实现),于是实际有三种组合。他沿用 twitter.json、canada.json、citm_catalog.json 三个 simdjson 文档,在 Apple M4 Max 与 Intel Xeon(Emerald Rapids)上单核解到 any(interface{})测中位数。结论:仅升级到 Go 1.27 不改一行代码,序列化就能快达两倍;改用新 API 收益更大——反序列化快 1.5~2.3 倍、序列化快 1.2~3 倍。有趣的是 legacy API 在新引擎上跑 canada.json 反而略慢(128→106 MB/s),所以「快两倍还是慢 1.5 倍」取决于文档形态与 API 组合。

核心要点

金句

So merely upgrading to Go 1.27, without changing a line of code, should make marshalling faster.(仅仅升级到 Go 1.27、一行代码都不改,序列化就应该更快。)
返回 Lobsters 首页