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
    • None
    • Environment:
      All
    • Hide

      1. What would you like to communicate to the user about this feature?
      2. Would you like the user to see examples of the syntax and/or executable code and its output?
      3. Which versions of the driver/connector does this apply to?

      Show
      1. What would you like to communicate to the user about this feature? 2. Would you like the user to see examples of the syntax and/or executable code and its output? 3. Which versions of the driver/connector does this apply to?

      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: