Go言語のencoding/json/v2を高速化するツール「odjson」を、作者本人であるmazrean氏が紹介しています。encoding/json/v2の安定性を保ちながら、サードパーティ製JSONライブラリ並みの速度を実現することを目指したツールで、内部バッファへの直接読み書き、SWAR(SIMD within a Register)技術、16Byte単位の定数書き込み、フィールド名の決定木判定といった最適化技術を用いています。
Go 1.27.1・AMD Ryzen 9 7950X・Ubuntu 24.04の環境でのベンチマークでは、bytedance/sonicやgoccy/go-json、json-iterator/go、mailru/easyjson、sapphi-red/json-constantiaterと比較し、エンコードで4倍以上、デコードで2.69〜3.39倍の高速化を達成したとしています。著者は「自分もISUCONなどで重宝しています」と述べています。
出典が伝えている要点
- 記事はGo言語のencoding/json/v2を高速化するツール「odjson」を紹介している
- 著者mazrean氏がodjsonの作者本人である
- odjsonはエンコード処理で4倍以上の高速化を実現したとされる
- odjsonはデコード処理で2.69〜3.39倍の高速化を実現したとされる
- ベンチマークのテスト環境はGo 1.27.1である
- ベンチマークのテスト環境はAMD Ryzen 9 7950Xである
- ベンチマークのテスト環境はUbuntu 24.04である
- 記事は2026年9月16日に公開された
- 比較対象としてbytedance/sonic、goccy/go-json、json-iterator/go、mailru/easyjson、sapphi-red/json-constantiaterが挙げられている
- odjsonの最適化にはencoding/json/v2の内部バッファへの直接読み書きが用いられている
- odjsonの最適化にはSWAR(SIMD within a Register)技術が用いられている
- odjsonの最適化にはフィールド名の決定木判定が用いられている
原文より
自分も ISUCON などで重宝しています
出典: zenn.dev