2
2
3
3
## Hardware and Software
4
4
5
- ``` ini
5
+ ``` ini
6
6
7
7
BenchmarkDotNet =v0.13.1, OS =Windows 10.0.19043.1645 (21H1/May2021Update)
8
8
11th Gen Intel Core i7-1185G7 3.00GHz, 1 CPU, 8 logical and 4 physical cores
@@ -15,55 +15,55 @@ BenchmarkDotNet=v0.13.1, OS=Windows 10.0.19043.1645 (21H1/May2021Update)
15
15
16
16
## Comparison Modes
17
17
18
- | Method | FileSize | Mean | Median | Min | Max | P80 | P95 | Allocated |
19
- | --------- | --------- | ----------: | ----------: | ----------: | ----------: | ----------: | ----------: | ----------: |
20
- | RawText | Small | 94.05 μs | 94.09 μs | 93.13 μs | 95.36 μs | 94.35 μs | 94.80 μs | 75 KB |
21
- | Semantic | Small | 104.65 μs | 104.27 μs | 102.67 μs | 107.86 μs | 105.55 μs | 107.76 μs | 75 KB |
18
+ | Method | FileSize | Mean | Median | Min | Max | P80 | P95 | Allocated |
19
+ | -------- | -------- | --------: | --------: | --------: | --------: | --------: | --------: | --------: |
20
+ | RawText | Small | 94.05 μs | 94.09 μs | 93.13 μs | 95.36 μs | 94.35 μs | 94.80 μs | 75 KB |
21
+ | Semantic | Small | 104.65 μs | 104.27 μs | 102.67 μs | 107.86 μs | 105.55 μs | 107.76 μs | 75 KB |
22
22
23
23
\* _ All benchmarks are generated using the same small JSON object used in the ** System.Text.Json vs Newtonsoft Json** section below, with array move detection enabled (default)._
24
24
25
25
## System.Text.Json vs Newtonsoft Json
26
26
27
27
### Diff (including RFC JsonPatch)
28
28
29
- | Method | FileSize | Mean | Median | Min | Max | P80 | P95 | Allocated |
30
- | ------------------- | --------- | ------------: | ------------: | ------------: | ------------: | ------------: | ------------: | ----------: |
31
- | ** SystemTextJson** | ** Small** | ** 76.93 μs** | ** 76.88 μs** | ** 75.62 μs** | ** 79.28 μs** | ** 77.43 μs** | ** 78.11 μs** | ** 67 KB** |
32
- | JsonNet | Small | 84.97 μs | 84.75 μs | 83.72 μs | 87.68 μs | 85.64 μs | 86.38 μs | 132 KB |
33
- | SystemTextJson_Rfc | Small | 91.88 μs | 91.71 μs | 90.70 μs | 95.01 μs | 92.37 μs | 94.37 μs | 89 KB |
34
- | JsonNet_Rfc | Small | 102.15 μs | 102.10 μs | 100.49 μs | 104.37 μs | 102.58 μs | 103.29 μs | 150 KB |
35
- | ** SystemTextJson** | ** Large** | ** 3,739.64 μs** | ** 3,734.25 μs** | ** 3,626.78 μs** | ** 3,902.76 μs** | ** 3,781.22 μs** | ** 3,844.92 μs** | ** 3,365 KB** |
36
- | JsonNet | Large | 3,846.70 μs | 3,850.62 μs | 3,760.20 μs | 3,917.07 μs | 3,887.43 μs | 3,896.80 μs | 4,386 KB |
37
- | SystemTextJson_Rfc | Large | 4,897.11 μs | 4,868.30 μs | 4,722.99 μs | 5,196.12 μs | 4,930.06 μs | 5,159.49 μs | 4,667 KB |
38
- | JsonNet_Rfc | Large | 5,260.99 μs | 5,249.26 μs | 5,121.82 μs | 5,487.74 μs | 5,322.84 μs | 5,460.47 μs | 6,147 KB |
29
+ | Method | FileSize | Mean | Median | Min | Max | P80 | P95 | Allocated |
30
+ | ------------------ | --------- | --------------: | --------------: | --------------: | --------------: | --------------: | --------------: | -----------: |
31
+ | ** SystemTextJson** | ** Small** | ** 76.93 μs** | ** 76.88 μs** | ** 75.62 μs** | ** 79.28 μs** | ** 77.43 μs** | ** 78.11 μs** | ** 67 KB** |
32
+ | JsonNet | Small | 84.97 μs | 84.75 μs | 83.72 μs | 87.68 μs | 85.64 μs | 86.38 μs | 132 KB |
33
+ | SystemTextJson_Rfc | Small | 91.88 μs | 91.71 μs | 90.70 μs | 95.01 μs | 92.37 μs | 94.37 μs | 89 KB |
34
+ | JsonNet_Rfc | Small | 102.15 μs | 102.10 μs | 100.49 μs | 104.37 μs | 102.58 μs | 103.29 μs | 150 KB |
35
+ | ** SystemTextJson** | ** Large** | ** 3,739.64 μs** | ** 3,734.25 μs** | ** 3,626.78 μs** | ** 3,902.76 μs** | ** 3,781.22 μs** | ** 3,844.92 μs** | ** 3,365 KB** |
36
+ | JsonNet | Large | 3,846.70 μs | 3,850.62 μs | 3,760.20 μs | 3,917.07 μs | 3,887.43 μs | 3,896.80 μs | 4,386 KB |
37
+ | SystemTextJson_Rfc | Large | 4,897.11 μs | 4,868.30 μs | 4,722.99 μs | 5,196.12 μs | 4,930.06 μs | 5,159.49 μs | 4,667 KB |
38
+ | JsonNet_Rfc | Large | 5,260.99 μs | 5,249.26 μs | 5,121.82 μs | 5,487.74 μs | 5,322.84 μs | 5,460.47 μs | 6,147 KB |
39
39
40
40
### DeepEquals
41
41
42
- | Method | FileSize | Mean | Median | Min | Max | P80 | P95 | Allocated |
43
- | ------------------------ | --------- | ------------: | ------------: | ------------: | ------------: | ------------: | ------------: | ----------: |
44
- | ** SystemTextJson_Node** | ** Small** | ** 55.10 μs** | ** 54.96 μs** | ** 54.14 μs** | ** 56.93 μs** | ** 55.49 μs** | ** 56.57 μs** | ** 38 KB** |
45
- | SystemTextJson_Document | Small | 40.63 μs | 40.58 μs | 40.08 μs | 41.27 μs | 40.80 μs | 41.12 μs | 26 KB |
46
- | JsonNet | Small | 57.84 μs | 57.62 μs | 57.17 μs | 59.40 μs | 58.07 μs | 58.98 μs | 91 KB |
47
- | ** SystemTextJson_Node** | ** Large** | ** 2,143.34 μs** | ** 2,125.71 μs** | ** 2,048.46 μs** | ** 2,328.43 μs** | ** 2,194.35 μs** | ** 2,266.60 μs** | ** 1,571 KB** |
48
- | SystemTextJson_Document | Large | 1,372.31 μs | 1,371.00 μs | 1,352.61 μs | 1,391.00 μs | 1,379.30 μs | 1,388.30 μs | 920 KB |
49
- | JsonNet | Large | 2,208.71 μs | 2,209.77 μs | 2,182.51 μs | 2,246.30 μs | 2,223.80 μs | 2,235.96 μs | 2,426 KB |
42
+ | Method | FileSize | Mean | Median | Min | Max | P80 | P95 | Allocated |
43
+ | ----------------------- | --------- | --------------: | --------------: | --------------: | --------------: | --------------: | --------------: | -----------: |
44
+ | ** SystemTextJson_Node** | ** Small** | ** 55.10 μs** | ** 54.96 μs** | ** 54.14 μs** | ** 56.93 μs** | ** 55.49 μs** | ** 56.57 μs** | ** 38 KB** |
45
+ | SystemTextJson_Document | Small | 40.63 μs | 40.58 μs | 40.08 μs | 41.27 μs | 40.80 μs | 41.12 μs | 26 KB |
46
+ | JsonNet | Small | 57.84 μs | 57.62 μs | 57.17 μs | 59.40 μs | 58.07 μs | 58.98 μs | 91 KB |
47
+ | ** SystemTextJson_Node** | ** Large** | ** 2,143.34 μs** | ** 2,125.71 μs** | ** 2,048.46 μs** | ** 2,328.43 μs** | ** 2,194.35 μs** | ** 2,266.60 μs** | ** 1,571 KB** |
48
+ | SystemTextJson_Document | Large | 1,372.31 μs | 1,371.00 μs | 1,352.61 μs | 1,391.00 μs | 1,379.30 μs | 1,388.30 μs | 920 KB |
49
+ | JsonNet | Large | 2,208.71 μs | 2,209.77 μs | 2,182.51 μs | 2,246.30 μs | 2,223.80 μs | 2,235.96 μs | 2,426 KB |
50
50
51
51
### Patch
52
52
53
- | Method | FileSize | Mean | Median | Min | Max | P80 | P95 | Allocated |
54
- | --------------- | --------- | ------------: | ------------: | ------------: | ------------: | ------------: | ------------: | ----------: |
55
- | ** SystemTextJson** | ** Small** | ** 35.45 μs** | ** 35.42 μs** | ** 34.43 μs** | ** 36.97 μs** | ** 35.86 μs** | ** 36.52 μs** | ** 35 KB** |
56
- | JsonNet | Small | 95.50 μs | 95.35 μs | 94.14 μs | 97.36 μs | 96.28 μs | 96.70 μs | 162 KB |
57
- | ** SystemTextJson** | ** Large** | ** 1,945.77 μs** | ** 1,935.61 μs** | ** 1,799.91 μs** | ** 2,203.39 μs** | ** 2,047.02 μs** | ** 2,093.61 μs** | ** 1,732 KB** |
58
- | JsonNet | Large | 4,324.16 μs | 4,315.50 μs | 4,184.21 μs | 4,506.67 μs | 4,378.94 μs | 4,433.86 μs | 5,088 KB |
53
+ | Method | FileSize | Mean | Median | Min | Max | P80 | P95 | Allocated |
54
+ | ------------------ | --------- | --------------: | --------------: | --------------: | --------------: | --------------: | --------------: | -----------: |
55
+ | ** SystemTextJson** | ** Small** | ** 35.45 μs** | ** 35.42 μs** | ** 34.43 μs** | ** 36.97 μs** | ** 35.86 μs** | ** 36.52 μs** | ** 35 KB** |
56
+ | JsonNet | Small | 95.50 μs | 95.35 μs | 94.14 μs | 97.36 μs | 96.28 μs | 96.70 μs | 162 KB |
57
+ | ** SystemTextJson** | ** Large** | ** 1,945.77 μs** | ** 1,935.61 μs** | ** 1,799.91 μs** | ** 2,203.39 μs** | ** 2,047.02 μs** | ** 2,093.61 μs** | ** 1,732 KB** |
58
+ | JsonNet | Large | 4,324.16 μs | 4,315.50 μs | 4,184.21 μs | 4,506.67 μs | 4,378.94 μs | 4,433.86 μs | 5,088 KB |
59
59
60
60
### DeepClone
61
61
62
- | Method | FileSize | Mean | Median | Min | Max | P80 | P95 | Allocated |
63
- | --------------- | --------- | ------------: | ------------: | ------------: | ------------: | ------------: | ------------: | ----------: |
64
- | ** SystemTextJson** | ** Small** | ** 28.98 μs** | ** 29.05 μs** | ** 27.99 μs** | ** 29.53 μs** | ** 29.29 μs** | ** 29.42 μs** | ** 40 KB** |
65
- | JsonNet | Small | 42.99 μs | 42.84 μs | 41.90 μs | 45.02 μs | 43.41 μs | 44.70 μs | 70 KB |
66
- | ** SystemTextJson** | ** Large** | ** 1,251.60 μs** | ** 1,247.97 μs** | ** 1,192.19 μs** | ** 1,323.97 μs** | ** 1,276.05 μs** | ** 1,310.40 μs** | ** 1,675 KB** |
67
- | JsonNet | Large | 1,708.43 μs | 1,706.69 μs | 1,664.39 μs | 1,783.04 μs | 1,731.47 μs | 1,759.00 μs | 2,128 KB |
62
+ | Method | FileSize | Mean | Median | Min | Max | P80 | P95 | Allocated |
63
+ | ------------------ | --------- | --------------: | --------------: | --------------: | --------------: | --------------: | --------------: | -----------: |
64
+ | ** SystemTextJson** | ** Small** | ** 28.98 μs** | ** 29.05 μs** | ** 27.99 μs** | ** 29.53 μs** | ** 29.29 μs** | ** 29.42 μs** | ** 40 KB** |
65
+ | JsonNet | Small | 42.99 μs | 42.84 μs | 41.90 μs | 45.02 μs | 43.41 μs | 44.70 μs | 70 KB |
66
+ | ** SystemTextJson** | ** Large** | ** 1,251.60 μs** | ** 1,247.97 μs** | ** 1,192.19 μs** | ** 1,323.97 μs** | ** 1,276.05 μs** | ** 1,310.40 μs** | ** 1,675 KB** |
67
+ | JsonNet | Large | 1,708.43 μs | 1,706.69 μs | 1,664.39 μs | 1,783.04 μs | 1,731.47 μs | 1,759.00 μs | 2,128 KB |
68
68
69
- \* _ All benchmarks for ` SystemTextJson ` methods are generated with ` JsonElementComparison.Semantic ` option and array move detection disabled because JsonDiffPatch.Net does not support array move detection._
69
+ \* _ All benchmarks for ` SystemTextJson ` methods are generated with ` JsonElementComparison.Semantic ` option and array move detection disabled because JsonDiffPatch.Net does not support array move detection._
0 commit comments