Uploaded image for project: 'C# Driver'
  1. C# Driver
  2. CSHARP-709

Implement compilable serializer

    • Type: Icon: New Feature New Feature
    • Resolution: Unresolved
    • Priority: Icon: Major - P3 Major - P3
    • None
    • Affects Version/s: 1.8
    • Component/s: Performance
    • Labels:
      None
    • Environment:
      All

      C# drivers docs, claim that bson serialization is working very much like XmlSerializer in .Net.
      But XmlSerializer uses code generation, which allows to perform direct operations on entities and is quite fast.
      On the other hand, BsonSerializer uses reflection to read/write properties.
      I did some testing, on a simple object with ~10 properties. Implementing BSON serialization manually (hardcoded work with BsonReader) is 80-100% faster, then current BSON serializer.
      So, we could have almost twice faster deserialization.
      If anyone interested, I can attach my test source code.

      On my Core i7 box in one thread/release, I get about 60kOps with current implementation and 120kOps with my hardcoded usage of BsonBuffer.

        1. Program.cs
          6 kB
          Vladimir Perevalov

            Assignee:
            Unassigned Unassigned
            Reporter:
            maxbl4 Vladimir Perevalov
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated: