Benchmarks comparing the performance of code generated by CGbR with alternative implementations.
The different serializers were put into test to give an overview of performance and size. Those tests were run on a AMD FX-8350 Windows Virtual Machine in Debug and Release mode after an initial JIT run and on an i5 Ubuntu compiled with release and mono --aot
. Absolute values do not matter as this is more a relative comparison. As you will see the generated version is always faster.
Test | WindowsVM (Debug) | WindowsVM (Release) | Mono AOT |
---|---|---|---|
JSON size | 21042 | 21042 | 21042 |
Json.NET serialize (ms) | 1,494 | 1,299 | 1,077 |
Json.NET deserialize (ms) | 3,016 | 2,356 | 0,828 |
Generator Json serialize (ms) | 0,598 | 0,606 | 0,433 |
Generator Json deserialize (ms) | 0,651 | 0,576 | 0,670 |
Binary size | 12720 | 12720 | 12720 |
Binary serialize | 0,123 | 0,041 | 0,059 |
Binary deserialize | 0,062 | 0,041 | 0,055 |