https://issues.apache.org/jira/browse/TINKERPOP-2349
.NET Core 3.0 is added as a target framework as it already includes support for `System.Text.Json` and therefore doesn't need the NuGet package. Results from a simple benchmark with BenchmarkDotNet showed that this improves the performance of the deserialization roughly by a factor of 2. The deserialization now also allocates far less memory, by a factor of ~7 which also results in less garbage collections. The performance of the serialization however stayed basically the same. It got even slightly slower by ~4% in this benchmark, but it also allocates a bit less memory (-12%). This seems acceptable in my opinion, given that it is only a very small increase, especially compared to the differences for the deserialization and because it allocates less memory now. Output from BenchmarkDotNet: Before: | Method | Mean | Error | StdDev | Gen 0 | Gen 1 | Gen 2 | Allocated | |---------------- |---------:|---------:|---------:|-------:|-------:|------:|----------:| | Serialization | 22.41 us | 0.616 us | 0.659 us | 1.5564 | - | - | 9.72 KB | | Deserialization | 40.50 us | 1.075 us | 1.150 us | 6.3477 | 0.6104 | - | 39.06 KB | After: | Method | Mean | Error | StdDev | Gen 0 | Gen 1 | Gen 2 | Allocated | |---------------- |---------:|---------:|---------:|-------:|------:|------:|----------:| | Serialization | 23.25 us | 0.103 us | 0.091 us | 1.3733 | - | - | 8.58 KB | | Deserialization | 25.89 us | 0.583 us | 0.545 us | 0.9155 | - | - | 5.74 KB | Another advantage of using System.Text.Json is that it supports [`Span<T>`](https://docs.microsoft.com/en-us/archive/msdn-magazine/2018/january/csharp-all-about-span-exploring-a-new-net-mainstay) so we could make use of that in the future to reduce memory allocations in the driver even more. VOTE +1 [ Full content available at: https://github.com/apache/tinkerpop/pull/1273 ] This message was relayed via gitbox.apache.org for [email protected]
