現在、Java プロジェクトで JSON (gzip で圧縮) を使用しています。このプロジェクトでは、多数のオブジェクト (数億) をディスクに格納する必要があります。1 行に 1 つの JSON オブジェクトがあり、JSON オブジェクト内の改行は許可されていません。このようにして、ファイル全体を一度に読み取らなくても、ディスクから行ごとにデータをストリーミングできます。
JSON コードの解析 ( http://www.json.org/java/を使用) は、生データをディスクから取り出したり、圧縮解除したりする (その場で行う) よりも大きなオーバーヘッドであることがわかりました。
理想的には、厳密に型指定されたシリアル化形式で、「このオブジェクト フィールドは文字列のリストです」(たとえば) を指定できます。システムは何を期待するかを認識しているため、すばやく逆シリアル化できます。他の誰かに「タイプ」を与えるだけで、フォーマットを指定することもできます。
また、クロスプラットフォームである必要があります。私は Java を使用していますが、PHP、Python、およびその他の言語を使用している人々と仕事をしています。
したがって、要約すると、次のようになります。
- 強く型付けされた
- ストリーミング可能 (つまり、一度にすべてを RAM にロードすることなく、ファイルをビットごとに読み取る)
- クロスプラットフォーム (Java と PHP を含む)
- 速い
- 無料(スピーチのように)
ポインタはありますか?