Uploaded image for project: 'Ignite'
  1. Ignite
  2. IGNITE-1421

.NET: Optimize writes of ultra-dense structures

    XMLWordPrintableJSON

Details

    • Improvement
    • Status: Open
    • Minor
    • Resolution: Unresolved
    • 1.1.4
    • None
    • platforms

    Description

      There is a case when we can dramatically increase marshal/unmarshal performance:
      1) Type is a structure;
      2) It contains only integer/float/double primitive types with well-defined;
      memory layout which is consistent with our serialization protocol;
      3) We are sure that there are no gaps in it's memory layout.
      4) User writes it as "marshal-aware" and fields write order is consistent with memory layout.

      In this case we can copy the whole structure into our stream with a single memcpy() operation. And we can read it from the stream as easy as [pointer dereference + position shift] (provided that target is on the stack).

      We should also disable handles for structs, since it does not make sense.

      Attachments

        Issue Links

          Activity

            People

              Unassigned Unassigned
              vozerov Vladimir Ozerov
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

                Created:
                Updated: