Serialization initial results

Posted on: 2015-03-26

The new serialization system still needs some work, but the guts of it - the new intermediate representation - does now work. With the old system you can serialize out and serialize back a memory stream to do a deep copy or 'clone'. I can now do effectively the same thing with the new system. It's not precisely the same thing because I don't have to create a final binary memory stream - I can just serialize to a memory intermediate representation and then back to create the deep copy. It is an advantage of the new system that you can do this, although that makes it not a strictly apples to apples comparison. Doing the full serialization will likely be close to these numbers, because in large part the intermediate representation is designed to be very close to the binary serialized representation.

With those caveats the preliminary numbers for x86/release/msvc show an average of 20 times as fast and a range from around 10 to 40 times. That's across small to large interconnected structures. I'm very pleased with these results which back up the intuition that there was quite a lot of performance head room on serialization.