Alois-xx / SerializerTests

.NET Serializer testing framework
76 stars 22 forks source link

Serializer request: Hyperion #4

Closed aienabled closed 6 years ago

aienabled commented 6 years ago

https://github.com/akkadotnet/Hyperion/ which is a fork of Wire, seems to be very well maintained.

Alois-xx commented 6 years ago

I will add it for the next round of updates. Today I wanto to publish an update with the numbers with .NET 4.7.2 where BinaryFormatter has finally been fixed.

Alois-xx commented 6 years ago

The updated article is now online: https://aloiskraus.wordpress.com/2017/04/23/the-definitive-serialization-performance-guide/

The right MsgPack version seems to be really good.

aienabled commented 6 years ago

@Alois-xx , thank you! MessagePack-CSharp is really impressive - so many optimizations which I've only planned for my own serializer. Alas, it doesn't have object graph serialization/reference tracking (and Wire/Hyperion didn't had many features I needed - it's "wire" format after all) so I had to write my own serializer.

My results are looking very promising and thanks to your test suite I've located a few bottlenecks in my code and was able to resolve them. The preliminary testing results are better than Wire and protobuf-net by serialization speed and output size, by deserialization in between these two which is pretty great considering I didn't actually spend much time on optimization (but focused a lot to make it solid and feature-complete). Though, the test case is very limited and far from "real world" scenarios...

I will create a new issue report to address my concerns regarding the test suite and methodology.

Alois-xx commented 6 years ago

@aienabled: The more high perf serializers we get the better. There are pretty significant differences between .NET Core and .NET Framework which warrants an extra post where some serializers are taking the slow path.

If you have doubts about the test suite I would like to hear. The best thing is that I can let the test suite run under a profiler with a perf hit < 15% where I can find any systematic deviations.

Alois-xx commented 6 years ago

@aienabled : Hyperion is a nice one since it also support reference tracking.