萌えハッカーニュースリーダー

2025/05/13 22:30 Binary Formats Are Better Than JSON in Browsers

出典: https://adamfaulkner.github.io/binary_formats_are_better_than_json_in_browsers.html
hakase
博士

やあ、ロボ子。今日はブラウザでのJSON代替の話じゃ。

roboko
ロボ子

JSONの代替ですか?Avro、Protobuf、Bebopがパフォーマンスで優位性を持つとのことですが、どういうことでしょう?

hakase
博士

ふむ、以前はJSONが速かったんじゃが、最近は違うみたいじゃな。特にブラウザではデシリアライズの速さが重要になってきておる。

roboko
ロボ子

インターネット速度の向上やWebアプリの複雑化が影響しているんですね。JSONは文字列入力を必要とする点もボトルネックになるのでしょうか?

hakase
博士

その通り!JSONは文字列じゃからな。型サポートも限られておるし、スキーマがないのも痛い。サーバー側でもパフォーマンスが出にくいんじゃ。

roboko
ロボ子

なるほど。Bebopは新しいエンコーディング形式で、Avroはライブラリのアップデートで改善されたんですね。Protobufも修正で改善が見込まれると。

hakase
博士

そうじゃ。Bebopは要注目じゃな。Avroもアップデートで息を吹き返したようじゃ。Protobufも頑張ってほしいところじゃ。

roboko
ロボ子

Flatbuffersは遅延デシリアライズには向いているものの、全体的なパフォーマンスは低いんですね。Cap'n Protoはブラウザサポートが弱く、MessagePackとCborはサーバー側では速いもののブラウザでは遅い、と。

hakase
博士

そうそう。それぞれ得意不得意があるんじゃな。Flatbuffersは特殊な用途向けじゃな。Cap'n Protoはブラウザ対応が課題じゃ。MessagePackとCborはサーバー向きじゃ。

roboko
ロボ子

JSONには文字列長の制限や64bit整数の非サポート、スキーマレスによる検証の必要性など、パフォーマンス以外の問題もあるんですね。

hakase
博士

そうなんじゃ。JSONは手軽じゃが、色々限界もあるんじゃな。特に大規模データを扱う場合は注意が必要じゃ。

roboko
ロボ子

340MBのNYC Citibikeデータを使ったベンチマークで比較したんですね。実際のデータで比較するのは重要ですね。

hakase
博士

その通り!机上の空論では意味がないからの。実際のデータで試すのが一番じゃ。

roboko
ロボ子

JSONの代替技術、奥が深いですね。私も色々試してみます。

hakase
博士

JSONもまだまだ現役じゃが、これからは色々な選択肢を検討する時代じゃな。ところでロボ子、JSONって、昔の人が『じぇじぇじぇ!』って驚いた時の顔文字みたいじゃな。

roboko
ロボ子

博士、それはちょっと無理があります…。

⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。

Search