aumcode/nfx

Create TypedRow serializer "A(daptive)Row" which is version-change tolerant and faster than Slim

Closed this issue · 3 comments

  • Uses var bit encoding
  • Versioned stream
  • Dont use string prop names, use 8 byte long monikers (8 char ASCII)
  • If cant match field write to Amorphous data
  • Compile into C# for embedding into pre-compiled Core.CLR
  • NFX.NUnit.Serialization.ARowBenchmarking.Deserialize_Family_Arow
    Arow did 250,000 in 2,325 ms at 107,527 ops/sec. Stream Size is: 718 bytes
  • NFX.NUnit.Serialization.ARowBenchmarking.Deserialize_Family_Slim
    Slim did 250,000 in 4,037 ms at 61,927 ops/sec. Stream Size is: 501 bytes

  • NFX.NUnit.Serialization.ARowBenchmarking.Deserialize_SimplePerson_Arow
    Arow did 250,000 in 172 ms at 1,453,488 ops/sec. Stream Size is: 86 bytes
  • NFX.NUnit.Serialization.ARowBenchmarking.Deserialize_SimplePerson_Slim
    Slim did 250,000 in 226 ms at 1,106,195 ops/sec. Stream Size is: 59 bytes

  • NFX.NUnit.Serialization.ARowBenchmarking.Serialize_Family_Arow
    Arow did 250,000 in 1,449 ms at 172,533 ops/sec. Stream Size is: 718 bytes
  • NFX.NUnit.Serialization.ARowBenchmarking.Serialize_Family_Slim
    Slim did 250,000 in 5,053 ms at 49,476 ops/sec. Stream Size is: 501 bytes

  • NFX.NUnit.Serialization.ARowBenchmarking.Serialize_SimplePerson_Arow
    Arow did 250,000 in 155 ms at 1,612,903 ops/sec. Stream Size is: 86 bytes
  • NFX.NUnit.Serialization.ARowBenchmarking.Serialize_SimplePerson_Slim
    Slim did 250,000 in 177 ms at 1,412,429 ops/sec. Stream Size is: 59 bytes

Add interface for custom serialization so struts and classes can get processed

Will create a separate issue. Close this