-
Notifications
You must be signed in to change notification settings - Fork 7
/
Copy pathDeserializeTest.cs
156 lines (129 loc) · 4.96 KB
/
DeserializeTest.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
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.IO;
using System.Linq;
using System.Runtime.Serialization.Json;
using System.Text;
using System.Text.Json;
using System.Threading.Tasks;
using JsonPerformanceTest.Models;
using Newtonsoft.Json;
namespace JsonPerformanceTest
{
class DeserializeTest
{
static System.Text.Json.JsonParser jp = new JsonParser();
public static void DoTests()
{
string json = EmbeddedJson.MonitorRecords;
FastJsonParserTest(json);
FastJsonParserGenericTest(json);
NewtonsoftGenericTest(json);
NewtonsoftMiniTest();
NewtonsoftTest(json);
ServiceStackMiniTest();
ServiceStackTest(json);
}
public static void ServiceStackTest(string json)
{
ServiceStack.Text.JsonSerializer.DeserializeFromString<List<Monitor>>(json);
ServiceStack.Text.JsonSerializer.DeserializeFromString<List<Monitor>>(json);
ServiceStack.Text.JsonSerializer.DeserializeFromString<List<Monitor>>(json);
Stopwatch sw = new Stopwatch();
sw.Start();
for (int i = 0; i < 25000; i++)
{
var monitors = ServiceStack.Text.JsonSerializer.DeserializeFromString<List<Monitor>>(json);
}
sw.Stop();
Debug.WriteLine("ServiceStack read " + sw.ElapsedMilliseconds + "ms");
}
public static void ServiceStackMiniTest()
{
string json = EmbeddedJson.MonitorRecordsMini;
ServiceStack.Text.JsonSerializer.DeserializeFromString<List<Monitor2>>(json);
ServiceStack.Text.JsonSerializer.DeserializeFromString<List<Monitor2>>(json);
ServiceStack.Text.JsonSerializer.DeserializeFromString<List<Monitor2>>(json);
Stopwatch sw = new Stopwatch();
sw.Start();
for (int i = 0; i < 25000; i++)
{
var monitors = ServiceStack.Text.JsonSerializer.DeserializeFromString<List<Monitor2>>(json);
}
sw.Stop();
Debug.WriteLine("ServiceStackMini read " + sw.ElapsedMilliseconds + "ms");
}
public static void FastJsonParserTest(string json)
{
jp.Parse<List<Monitor>>(json);
jp.Parse<List<Monitor>>(json);
jp.Parse<List<Monitor>>(json);
Stopwatch sw = new Stopwatch();
sw.Start();
for (int i = 0; i < 25000; i++)
{
var monitors = jp.Parse<List<Monitor>>(json);
}
sw.Stop();
Debug.WriteLine("FastJson read " + sw.ElapsedMilliseconds + "ms");
}
public static void FastJsonParserGenericTest(string json)
{
var obj = jp.Parse(json);
jp.Parse(json);
jp.Parse(json);
Stopwatch sw = new Stopwatch();
sw.Start();
for (int i = 0; i < 25000; i++)
{
var monitors = jp.Parse(json);
}
sw.Stop();
Debug.WriteLine("FastJsonGeneric read " + sw.ElapsedMilliseconds + "ms");
}
public static void NewtonsoftTest(string json)
{
JsonConvert.DeserializeObject<List<Monitor>>(json);
JsonConvert.DeserializeObject<List<Monitor>>(json);
JsonConvert.DeserializeObject<List<Monitor>>(json);
Stopwatch sw = new Stopwatch();
sw.Start();
for (int i = 0; i < 25000; i++)
{
var monitors = JsonConvert.DeserializeObject<List<Monitor>>(json);
}
sw.Stop();
Debug.WriteLine("Newtonsoft read " + sw.ElapsedMilliseconds + "ms");
}
public static void NewtonsoftGenericTest(string json)
{
JsonConvert.DeserializeObject(json);
JsonConvert.DeserializeObject(json);
JsonConvert.DeserializeObject(json);
Stopwatch sw = new Stopwatch();
sw.Start();
for (int i = 0; i < 25000; i++)
{
var monitors = JsonConvert.DeserializeObject(json);
}
sw.Stop();
Debug.WriteLine("NewtonsoftGeneric read " + sw.ElapsedMilliseconds + "ms");
}
public static void NewtonsoftMiniTest()
{
string json = EmbeddedJson.MonitorRecordsMini;
JsonConvert.DeserializeObject<List<Monitor2>>(json);
JsonConvert.DeserializeObject<List<Monitor2>>(json);
JsonConvert.DeserializeObject<List<Monitor2>>(json);
Stopwatch sw = new Stopwatch();
sw.Start();
for (int i = 0; i < 25000; i++)
{
var monitors = JsonConvert.DeserializeObject<List<Monitor2>>(json);
}
sw.Stop();
Debug.WriteLine("NewtonsoftMini read " + sw.ElapsedMilliseconds + "ms");
}
}
}