-
-
Notifications
You must be signed in to change notification settings - Fork 11
Expand file tree
/
Copy pathBinaryBenchmark.GroBuf.cs
More file actions
27 lines (22 loc) · 905 Bytes
/
BinaryBenchmark.GroBuf.cs
File metadata and controls
27 lines (22 loc) · 905 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
using BenchmarkDotNet.Attributes;
using GroBuf;
using GroBuf.DataMembersExtracters;
using SerializationBenchmarks.Models;
public partial class BinaryBenchmark
{
private readonly Serializer _groSerializer = new Serializer(new PropertiesExtractor(), options : GroBufOptions.WriteEmptyObjects);
[Benchmark, BenchmarkCategory("Serialization", "Binary"), ArgumentsSource(nameof(GenerateDataSets))]
public byte[] GroBuf_Serialize(DataSet data)
{
return DataConvert_GroBuf(data.Payload);
}
[Benchmark, BenchmarkCategory("Deserialization", "Binary"), ArgumentsSource(nameof(GenerateDataSets))]
public List<User> GroBuf_Deserialize(DataSet data)
{
return _groSerializer.Deserialize<List<User>>(data.SerializedData.GroBuf);
}
private byte[] DataConvert_GroBuf(List<User> users)
{
return _groSerializer.Serialize(users);
}
}