Skip to content

Latest commit

 

History

History
28 lines (25 loc) · 2.93 KB

JsonDocumentToBsonDocument.md

File metadata and controls

28 lines (25 loc) · 2.93 KB

Converting S.T.Json.JsonDocument to MongoDB.Bson.BsonDocument

What's the fastest way converting loose JsonDocument to BsonDocument? Let's find out:

  • serializing JsonDocument to string, and then parsing string to BsonDocument
  • using JsonDocument.WriteTo to write serialized document to buffer, creating string out of that buffer and then parsing string to BsonDocument
  • using JsonDocument.WriteTo to write serialized document to buffer and then using same buffer do deserialize BsonDocument out of it
BenchmarkDotNet=v0.13.1, OS=Windows 10.0.19044.1889 (21H2)
Intel Core i7-7820HQ CPU 2.90GHz (Kaby Lake), 1 CPU, 8 logical and 4 physical cores
.NET SDK=6.0.303
  [Host]     : .NET 6.0.8 (6.0.822.36306), X64 RyuJIT
  DefaultJob : .NET 6.0.8 (6.0.822.36306), X64 RyuJIT
Method Size Mean Error StdDev Ratio RatioSD Gen 0 Allocated
'JsonDocument -> string -> BsonDocument' Small 2.490 μs 0.0328 μs 0.0307 μs 1.00 0.00 0.8545 4 KB
'JsonDocument: WriteTo -> MemoryStream -> string -> BsonDocument' Small 2.749 μs 0.0341 μs 0.0319 μs 1.10 0.02 1.0338 4 KB
'JsonDocument: WriteTo -> MemoryStream -> BsonDocument' Small 3.034 μs 0.0583 μs 0.0545 μs 1.22 0.02 2.3079 9 KB
'JsonDocument -> string -> BsonDocument' Medium 20.626 μs 0.2212 μs 0.1961 μs 1.00 0.00 6.7139 27 KB
'JsonDocument: WriteTo -> MemoryStream -> string -> BsonDocument' Medium 21.268 μs 0.4090 μs 0.4200 μs 1.03 0.03 8.4229 34 KB
'JsonDocument: WriteTo -> MemoryStream -> BsonDocument' Medium 22.066 μs 0.4327 μs 0.5473 μs 1.07 0.03 9.8572 40 KB
'JsonDocument -> string -> BsonDocument' Large 111.541 μs 1.2759 μs 1.0655 μs 1.00 0.00 34.5459 141 KB
'JsonDocument: WriteTo -> MemoryStream -> string -> BsonDocument' Large 112.895 μs 1.5988 μs 1.3351 μs 1.01 0.01 42.9688 176 KB
'JsonDocument: WriteTo -> MemoryStream -> BsonDocument' Large 138.318 μs 2.4092 μs 2.2535 μs 1.24 0.02 53.2227 218 KB