-
Notifications
You must be signed in to change notification settings - Fork 0
/
Benchmarks.cs
43 lines (38 loc) · 1.53 KB
/
Benchmarks.cs
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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
using BenchmarkDotNet.Attributes;
namespace BenchmarkSourceGenerator
{
[MemoryDiagnoser]
[Orderer(BenchmarkDotNet.Order.SummaryOrderPolicy.FastestToSlowest)]
[RankColumn]
[RPlotExporter]
public class Benchmarks
{
private string _incomingRequest;
private GeneratedSerializer _generatedSerializer;
private NewtonSoftJsonSerializer _newtonSoftJsonSerializer;
private SystemJsonSerializer _systemJsonSerializer;
[GlobalSetup]
public void Setup()
{
_generatedSerializer = new GeneratedSerializer();
_newtonSoftJsonSerializer = new NewtonSoftJsonSerializer();
_systemJsonSerializer = new SystemJsonSerializer();
_incomingRequest = "{\"requestBool\":true,\"requestGuid\":\"f8b6190c-d7e6-4547-a8ef-bbd29c394d13\",\"requestDate\":null,\"requestType\":\"simple type\",\"requestNumber\":1,\"requestPayload\":{\"payloadString\":\"\",\"payloadGuid\":null,\"number\":2,\"payloadBool\":false,\"dateTime\":\"0001-01-01T00:00:00\"}}";
}
[Benchmark]
public void NewtonSoftJsonSerializer()
{
var result = _newtonSoftJsonSerializer.Convert(_incomingRequest);
}
[Benchmark]
public void SystemJsonSerializer()
{
var result = _systemJsonSerializer.Convert(_incomingRequest);
}
[Benchmark(Baseline = true)]
public void GeneratedSerializer()
{
var result = _generatedSerializer.Convert(_incomingRequest);
}
}
}