オブジェクトをシリアル化するためにJSONとBSONを比較しています。これらのオブジェクトには、多数の整数の配列がいくつか含まれています。私のテストでは、シリアル化するオブジェクトには、合計で約12,000個の整数が含まれています。シリアル化された結果のサイズの比較にのみ関心があります。シリアル化を行うライブラリとしてJSON.NETを使用しています。JSONを使用しているのは、JavascriptでもJSONを使用できるようにするためです。
JSON文字列のサイズは約43kbで、BSON結果のサイズは161kbです。したがって、差係数は約4です。BSONの方がデータの保存に効率的だと思ったので、BSONを見たので、これは私が期待したものではありません。
だから私の質問は、なぜBSONが効率的でないのか、それをより効率的にすることができるのかということです。または、Javascriptで簡単に処理できる、多数の整数を含む配列を使用してデータをシリアル化する別の方法はありますか?
以下に、JSON/BSONシリアル化をテストするためのコードを示します。
// Read file which contain json string
string _jsonString = ReadFile();
object _object = Newtonsoft.Json.JsonConvert.DeserializeObject(_jsonString);
FileStream _fs = File.OpenWrite("BsonFileName");
using (Newtonsoft.Json.Bson.BsonWriter _bsonWriter = new BsonWriter(_fs)
{ CloseOutput = false })
{
Newtonsoft.Json.JsonSerializer _jsonSerializer = new JsonSerializer();
_jsonSerializer.Serialize(_bsonWriter, _object);
_bsonWriter.Flush();
}
編集:
結果のファイルは次のとおりです https://skydrive.live.com/redir?resid=9A6F31F60861DD2C!362&authkey=!AKU-ZZp8C_0gcR0