-
-
Notifications
You must be signed in to change notification settings - Fork 11
Expand file tree
/
Copy pathJsonBenchmarks.SpanJson.cs
More file actions
19 lines (17 loc) · 854 Bytes
/
JsonBenchmarks.SpanJson.cs
File metadata and controls
19 lines (17 loc) · 854 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
using System.Text;
using BenchmarkDotNet.Attributes;
using SerializationBenchmarks.Models;
public partial class JsonBenchmark
{
[Benchmark, BenchmarkCategory("Serialization", "Json"), ArgumentsSource(nameof(GenerateDataSets))]
public ArraySegment<byte> SpanJson_Serialize(DataSet data)
{
return SpanJson.JsonSerializer.Generic.Utf8.SerializeToArrayPool<List<User>, SpanJson.Resolvers.ExcludeNullsCamelCaseResolver<byte>>(data.Payload);
}
[Benchmark, BenchmarkCategory("Deserialization", "Json"), ArgumentsSource(nameof(GenerateDataSets))]
public List<User> SpanJson_Deserialize(DataSet data)
{
ReadOnlySpan<byte> json = Encoding.UTF8.GetBytes(data.Json);
return SpanJson.JsonSerializer.Generic.Utf8.Deserialize<List<User>, SpanJson.Resolvers.ExcludeNullsCamelCaseResolver<byte>>(json);
}
}