Porównaj JSON i BSON
Porównuję JSON i BSON do serializacji obiektów. Obiekty te zawierają kilka tablic o dużej liczbie liczb całkowitych. W moim teście obiekt, który serializuję, zawiera całkowitą liczbę około 12 000 liczb całkowitych. Interesuje mnie tylko to, w jaki sposób rozmiary porównują wyniki serializowane. Używam JSON.NET jako biblioteki, która wykonuje serializację. Używam JSON, ponieważ chcę też pracować z nim w Javascript.
Rozmiar łańcucha JSON wynosi około 43 kb, a wynik BSON to 161 kb. Tak więc współczynnik różnicy wynosi około 4. Nie tego oczekiwałem, ponieważ spojrzałem na BSON, ponieważ uważałem, że BSON jest bardziej wydajny w przechowywaniu danych.
Moje pytanie brzmi: dlaczego BSON nie jest wydajny, czy można go usprawnić? Czy istnieje inny sposób serializowania danych za pomocą tablic zawierających dużą liczbę całkowitych, które można łatwo obsługiwać w Javascript?
Poniżej znajdziesz kod do testowania serializacji 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();
}
Edytować:
Oto pliki wynikowehttps://skydrive.live.com/redir?resid=9A6F31F60861DD2C!362&authkey=!AKU-ZZp8C_0gcR0