Skip to content

Conversation

@Jannify
Copy link
Member

@Jannify Jannify commented Jul 1, 2023

Closes: #7

@Jannify Jannify requested a review from Measurity July 6, 2023 09:03
@Measurity
Copy link
Contributor

Benchmark run:

|           Method |     Job |              Runtime |      Categories |        Mean |    Error |   StdDev | Ratio | RatioSD |    Gen0 |    Gen1 |    Gen2 | Allocated | Alloc Ratio |
|----------------- |-------- |--------------------- |---------------- |------------:|---------:|---------:|------:|--------:|--------:|--------:|--------:|----------:|------------:|
|   NewtonsoftJson | NET_472 | .NET Framework 4.7.2 | Deserialization |   503.14 us | 1.536 us | 1.362 us |  1.00 |    0.00 | 27.3438 |  6.8359 |       - | 172.19 KB |        1.00 |
|      NetCoreJson | NET_472 | .NET Framework 4.7.2 | Deserialization |   705.07 us | 2.721 us | 2.545 us |  1.40 |    0.01 | 16.6016 |  3.9063 |       - | 106.12 KB |        0.62 |
|    XmlSerializer | NET_472 | .NET Framework 4.7.2 | Deserialization |   532.08 us | 2.446 us | 2.288 us |  1.06 |    0.00 | 29.2969 |  6.8359 |       - | 183.02 KB |        1.06 |
| DataContractJson | NET_472 | .NET Framework 4.7.2 | Deserialization | 1,879.06 us | 4.792 us | 4.248 us |  3.73 |    0.01 | 89.8438 | 21.4844 |       - | 562.47 KB |        3.27 |
|         Utf8Json | NET_472 | .NET Framework 4.7.2 | Deserialization |   278.43 us | 1.311 us | 1.226 us |  0.55 |    0.00 | 41.5039 | 41.5039 | 41.5039 | 239.03 KB |        1.39 |
|      MessagePack | NET_472 | .NET Framework 4.7.2 | Deserialization |   184.34 us | 0.818 us | 0.765 us |  0.37 |    0.00 | 17.0898 |  3.9063 |       - | 106.43 KB |        0.62 |
|                  |         |                      |                 |             |          |          |       |         |         |         |         |           |             |
|   NewtonsoftJson |   NET_7 |             .NET 7.0 | Deserialization |   407.98 us | 1.399 us | 1.308 us |  1.00 |    0.00 |  9.2773 |  1.9531 |       - | 156.87 KB |        1.00 |
|      NetCoreJson |   NET_7 |             .NET 7.0 | Deserialization |   340.38 us | 1.773 us | 1.659 us |  0.83 |    0.01 |  6.3477 |  0.9766 |       - | 111.57 KB |        0.71 |
|    XmlSerializer |   NET_7 |             .NET 7.0 | Deserialization |   414.89 us | 1.987 us | 1.859 us |  1.02 |    0.01 | 11.7188 |  2.9297 |       - | 195.49 KB |        1.25 |
| DataContractJson |   NET_7 |             .NET 7.0 | Deserialization | 1,456.69 us | 5.560 us | 5.200 us |  3.57 |    0.02 | 33.2031 |  7.8125 |       - | 553.67 KB |        3.53 |
|         Utf8Json |   NET_7 |             .NET 7.0 | Deserialization |   242.99 us | 1.437 us | 1.344 us |  0.60 |    0.00 | 41.5039 | 41.5039 | 41.5039 | 239.84 KB |        1.53 |
|      MessagePack |   NET_7 |             .NET 7.0 | Deserialization |    64.68 us | 0.461 us | 0.432 us |  0.16 |    0.00 |  6.5918 |  1.4648 |       - | 108.16 KB |        0.69 |
|                  |         |                      |                 |             |          |          |       |         |         |         |         |           |             |
|   NewtonsoftJson | NET_472 | .NET Framework 4.7.2 |   Serialization |   452.81 us | 1.128 us | 1.000 us |  1.00 |    0.00 | 41.5039 | 41.5039 | 41.5039 | 294.21 KB |        1.00 |
|      NetCoreJson | NET_472 | .NET Framework 4.7.2 |   Serialization |   502.96 us | 1.469 us | 1.374 us |  1.11 |    0.00 | 64.4531 | 64.4531 | 64.4531 | 315.83 KB |        1.07 |
|    XmlSerializer | NET_472 | .NET Framework 4.7.2 |   Serialization |   610.26 us | 2.341 us | 2.190 us |  1.35 |    0.01 | 82.0313 | 41.0156 | 41.0156 | 507.09 KB |        1.72 |
| DataContractJson | NET_472 | .NET Framework 4.7.2 |   Serialization |   625.97 us | 1.958 us | 1.831 us |  1.38 |    0.01 | 35.1563 | 35.1563 | 35.1563 | 232.08 KB |        0.79 |
|         Utf8Json | NET_472 | .NET Framework 4.7.2 |   Serialization |   268.17 us | 1.850 us | 1.730 us |  0.59 |    0.00 | 41.5039 | 41.5039 | 41.5039 | 199.48 KB |        0.68 |
|      MessagePack | NET_472 | .NET Framework 4.7.2 |   Serialization |    73.82 us | 0.374 us | 0.350 us |  0.16 |    0.00 | 17.8223 |  2.9297 |       - | 109.98 KB |        0.37 |
|                  |         |                      |                 |             |          |          |       |         |         |         |         |           |             |
|   NewtonsoftJson |   NET_7 |             .NET 7.0 |   Serialization |   224.71 us | 1.285 us | 1.202 us |  1.00 |    0.00 |  9.7656 |  1.9531 |       - | 163.78 KB |        1.00 |
|      NetCoreJson |   NET_7 |             .NET 7.0 |   Serialization |   269.30 us | 1.289 us | 1.206 us |  1.20 |    0.01 | 39.5508 | 39.5508 | 39.5508 |  315.5 KB |        1.93 |
|    XmlSerializer |   NET_7 |             .NET 7.0 |   Serialization |   390.39 us | 0.700 us | 0.621 us |  1.74 |    0.01 | 90.8203 | 90.8203 | 90.8203 | 420.04 KB |        2.56 |
| DataContractJson |   NET_7 |             .NET 7.0 |   Serialization |   482.34 us | 1.305 us | 1.157 us |  2.15 |    0.02 | 35.6445 | 35.6445 | 35.6445 | 227.69 KB |        1.39 |
|         Utf8Json |   NET_7 |             .NET 7.0 |   Serialization |   231.57 us | 1.436 us | 1.343 us |  1.03 |    0.01 | 41.5039 | 41.5039 | 41.5039 | 194.08 KB |        1.19 |
|      MessagePack |   NET_7 |             .NET 7.0 |   Serialization |    37.07 us | 0.162 us | 0.152 us |  0.16 |    0.00 |  6.7139 |  0.8545 |       - | 110.47 KB |        0.67 |

@tornac1234
Copy link

Could you add some graph for this benchmark please ?

@Measurity Measurity merged commit 8646737 into SubnauticaNitrox:master Jul 6, 2023
@Jannify Jannify deleted the abstractInBetween branch July 7, 2023 10:17
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Serializing and deserializing List<T> returns base type if T isn't abstract/interface

3 participants