BenchmarkDotNet =v0.13.1, OS =ubuntu 20.04
Intel Xeon Platinum 8171M CPU 2.60GHz, 1 CPU, 2 logical and 2 physical cores
.NET SDK =6.0.100-rc.2.21420.30
[Host] : .NET 5.0.9 (5.0.921.35908), X64 RyuJIT
.NET 5.0 : .NET 5.0.9 (5.0.921.35908), X64 RyuJIT
.NET 6.0 : .NET 6.0.0 (6.0.21.42010), X64 RyuJIT
.NET 6.0 PGO + EA : .NET 6.0.0 (6.0.21.42010), X64 RyuJIT, EnvVars(DOTNET_JitObjectStackAllocation =1,DOTNET_TieredPgo =1,DOTNET_ReadyToRun =0,DOTNET_TC_QuickJitForLoops =1)
IterationCount =3 LaunchCount =1 WarmupCount =3
BenchmarkAggregateBindable
Method
Job
Runtime
Mean
Error
StdDev
Ratio
RatioSD
Gen 0
Allocated
AggregateRecalculation
.NET 5.0
.NET 5.0
1.623 ms
0.7220 ms
0.0396 ms
1.00
0.00
9.7656
213 KB
AggregateRecalculation
.NET 6.0
.NET 6.0
1.489 ms
0.4055 ms
0.0222 ms
0.92
0.04
9.7656
213 KB
AggregateRecalculation
.NET 6.0 PGO + EA
.NET 6.0
1.463 ms
0.0982 ms
0.0054 ms
0.90
0.02
9.7656
213 KB
BenchmarkBeginAbsoluteSequence
Method
Job
Runtime
Mean
Error
StdDev
Ratio
RatioSD
Gen 0
Allocated
NonRecursive
.NET 5.0
.NET 5.0
1.042 ms
0.0392 ms
0.0021 ms
1.00
0.00
-
194 B
NonRecursive
.NET 6.0
.NET 6.0
1.141 ms
0.1366 ms
0.0075 ms
1.10
0.01
-
198 B
NonRecursive
.NET 6.0 PGO + EA
.NET 6.0
1.106 ms
0.3584 ms
0.0196 ms
1.06
0.02
-
198 B
Recursive
.NET 5.0
.NET 5.0
1.167 ms
0.2203 ms
0.0121 ms
1.00
0.00
1.9531
56,292 B
Recursive
.NET 6.0
.NET 6.0
1.220 ms
0.0650 ms
0.0036 ms
1.04
0.01
1.9531
56,292 B
Recursive
.NET 6.0 PGO + EA
.NET 6.0
1.209 ms
0.3983 ms
0.0218 ms
1.04
0.03
1.9531
56,294 B
SlightlyNestedNonRecursive
.NET 5.0
.NET 5.0
1.208 ms
0.4922 ms
0.0270 ms
1.00
0.00
-
196 B
SlightlyNestedNonRecursive
.NET 6.0
.NET 6.0
1.132 ms
0.1236 ms
0.0068 ms
0.94
0.02
-
198 B
SlightlyNestedNonRecursive
.NET 6.0 PGO + EA
.NET 6.0
1.145 ms
0.2491 ms
0.0137 ms
0.95
0.02
-
199 B
SlightlyNestedRecursive
.NET 5.0
.NET 5.0
1.308 ms
0.1942 ms
0.0106 ms
1.00
0.00
5.8594
120,332 B
SlightlyNestedRecursive
.NET 6.0
.NET 6.0
1.265 ms
0.4235 ms
0.0232 ms
0.97
0.02
5.8594
120,332 B
SlightlyNestedRecursive
.NET 6.0 PGO + EA
.NET 6.0
1.337 ms
0.6149 ms
0.0337 ms
1.02
0.02
5.8594
120,334 B
VeryNestedNonRecursive
.NET 5.0
.NET 5.0
1.142 ms
0.1480 ms
0.0081 ms
1.00
0.00
-
196 B
VeryNestedNonRecursive
.NET 6.0
.NET 6.0
1.170 ms
0.3401 ms
0.0186 ms
1.02
0.01
-
196 B
VeryNestedNonRecursive
.NET 6.0 PGO + EA
.NET 6.0
1.155 ms
0.5129 ms
0.0281 ms
1.01
0.02
-
196 B
VeryNestedRecursive
.NET 5.0
.NET 5.0
1.287 ms
0.1514 ms
0.0083 ms
1.00
0.00
1.9531
64,868 B
VeryNestedRecursive
.NET 6.0
.NET 6.0
1.209 ms
0.1443 ms
0.0079 ms
0.94
0.01
1.9531
64,868 B
VeryNestedRecursive
.NET 6.0 PGO + EA
.NET 6.0
1.310 ms
0.5219 ms
0.0286 ms
1.02
0.02
1.9531
64,870 B
BenchmarkBindableInstantiation
Method
Job
Runtime
Mean
Error
StdDev
Ratio
RatioSD
GetBoundCopyOld
.NET 5.0
.NET 5.0
1,923.2 ns
245.7 ns
13.47 ns
1.00
0.00
GetBoundCopy
.NET 5.0
.NET 5.0
1,041.4 ns
340.4 ns
18.66 ns
0.54
0.01
GetBoundCopyOld
.NET 6.0
.NET 6.0
1,766.7 ns
241.9 ns
13.26 ns
0.92
0.01
GetBoundCopy
.NET 6.0
.NET 6.0
1,004.9 ns
1,128.8 ns
61.87 ns
0.52
0.04
GetBoundCopyOld
.NET 6.0 PGO + EA
.NET 6.0
1,881.2 ns
444.9 ns
24.39 ns
0.98
0.01
GetBoundCopy
.NET 6.0 PGO + EA
.NET 6.0
947.7 ns
189.6 ns
10.39 ns
0.49
0.01
Method
Job
Runtime
Mean
Error
StdDev
Ratio
Allocated
Enumerate
.NET 5.0
.NET 5.0
4.361 μs
0.6657 μs
0.0365 μs
1.00
-
Enumerate
.NET 6.0
.NET 6.0
1.869 μs
0.7466 μs
0.0409 μs
0.43
-
Enumerate
.NET 6.0 PGO + EA
.NET 6.0
1.870 μs
0.4341 μs
0.0238 μs
0.43
-
Method
Job
Runtime
count
Mean
Error
StdDev
Ratio
RatioSD
Gen 0
Gen 1
Allocated
Apply
.NET 5.0
.NET 5.0
?
1,410.3 ns
278.05 ns
15.24 ns
1.00
0.00
0.1450
-
2,712 B
Apply
.NET 6.0
.NET 6.0
?
1,384.4 ns
606.53 ns
33.25 ns
0.98
0.03
0.1411
-
2,656 B
Apply
.NET 6.0 PGO + EA
.NET 6.0
?
1,383.5 ns
579.08 ns
31.74 ns
0.98
0.02
0.1411
0.0114
2,656 B
FromTwoStates
.NET 5.0
.NET 5.0
1
383.8 ns
67.02 ns
3.67 ns
1.00
0.00
0.0377
-
704 B
FromTwoStates
.NET 6.0
.NET 6.0
1
376.8 ns
93.44 ns
5.12 ns
0.98
0.01
0.0367
-
688 B
FromTwoStates
.NET 6.0 PGO + EA
.NET 6.0
1
373.9 ns
16.07 ns
0.88 ns
0.97
0.01
0.0367
-
688 B
FromTwoStates
.NET 5.0
.NET 5.0
5
1,011.2 ns
419.75 ns
23.01 ns
1.00
0.00
0.0668
-
1,248 B
FromTwoStates
.NET 6.0
.NET 6.0
5
888.5 ns
165.52 ns
9.07 ns
0.88
0.02
0.0658
-
1,232 B
FromTwoStates
.NET 6.0 PGO + EA
.NET 6.0
5
906.7 ns
209.55 ns
11.49 ns
0.90
0.02
0.0658
-
1,232 B
FromTwoStates
.NET 5.0
.NET 5.0
10
1,807.1 ns
710.21 ns
38.93 ns
1.00
0.00
0.1163
-
2,192 B
FromTwoStates
.NET 6.0
.NET 6.0
10
1,546.9 ns
460.38 ns
25.23 ns
0.86
0.02
0.1163
-
2,176 B
FromTwoStates
.NET 6.0 PGO + EA
.NET 6.0
10
1,613.9 ns
346.54 ns
18.99 ns
0.89
0.01
0.1163
-
2,176 B
FromTwoStates
.NET 5.0
.NET 5.0
50
6,590.9 ns
2,772.06 ns
151.95 ns
1.00
0.00
0.4425
-
8,272 B
FromTwoStates
.NET 6.0
.NET 6.0
50
6,076.1 ns
2,817.47 ns
154.43 ns
0.92
0.03
0.4349
-
8,256 B
FromTwoStates
.NET 6.0 PGO + EA
.NET 6.0
50
5,819.2 ns
1,337.93 ns
73.34 ns
0.88
0.01
0.4349
0.0229
8,256 B
Method
Job
Runtime
count
Mean
Error
StdDev
Ratio
RatioSD
Gen 0
Allocated
CreateNew
.NET 5.0
.NET 5.0
?
26.76 ns
13.184 ns
0.723 ns
1.00
0.00
0.0051
96 B
SetPressed
.NET 5.0
.NET 5.0
?
94.11 ns
63.270 ns
3.468 ns
3.52
0.20
0.0106
200 B
EnumerateEmptyDifferences
.NET 5.0
.NET 5.0
?
55.24 ns
8.131 ns
0.446 ns
2.07
0.07
0.0103
192 B
CreateNew
.NET 6.0
.NET 6.0
?
23.85 ns
13.183 ns
0.723 ns
0.89
0.04
0.0047
88 B
SetPressed
.NET 6.0
.NET 6.0
?
94.70 ns
35.575 ns
1.950 ns
3.54
0.08
0.0103
192 B
EnumerateEmptyDifferences
.NET 6.0
.NET 6.0
?
54.18 ns
16.380 ns
0.898 ns
2.03
0.06
0.0094
176 B
CreateNew
.NET 6.0 PGO + EA
.NET 6.0
?
23.38 ns
13.883 ns
0.761 ns
0.87
0.05
0.0047
88 B
SetPressed
.NET 6.0 PGO + EA
.NET 6.0
?
76.97 ns
65.925 ns
3.614 ns
2.87
0.06
0.0089
168 B
EnumerateEmptyDifferences
.NET 6.0 PGO + EA
.NET 6.0
?
49.17 ns
22.920 ns
1.256 ns
1.84
0.09
0.0094
176 B
EnumerateBothDifferences
.NET 5.0
.NET 5.0
1
334.68 ns
184.490 ns
10.113 ns
?
?
0.0324
608 B
EnumerateBothDifferences
.NET 6.0
.NET 6.0
1
319.09 ns
118.869 ns
6.516 ns
?
?
0.0315
592 B
EnumerateBothDifferences
.NET 6.0 PGO + EA
.NET 6.0
1
338.00 ns
116.738 ns
6.399 ns
?
?
0.0315
592 B
EnumerateBothDifferences
.NET 5.0
.NET 5.0
5
831.57 ns
48.714 ns
2.670 ns
?
?
0.0582
1,088 B
EnumerateBothDifferences
.NET 6.0
.NET 6.0
5
829.98 ns
229.681 ns
12.590 ns
?
?
0.0572
1,072 B
EnumerateBothDifferences
.NET 6.0 PGO + EA
.NET 6.0
5
819.83 ns
204.675 ns
11.219 ns
?
?
0.0572
1,072 B
EnumerateBothDifferences
.NET 5.0
.NET 5.0
10
1,595.10 ns
1,781.965 ns
97.675 ns
?
?
0.1030
1,952 B
EnumerateBothDifferences
.NET 6.0
.NET 6.0
10
1,564.74 ns
525.705 ns
28.816 ns
?
?
0.1030
1,936 B
EnumerateBothDifferences
.NET 6.0 PGO + EA
.NET 6.0
10
1,412.49 ns
161.599 ns
8.858 ns
?
?
0.1030
1,936 B
EnumerateBothDifferences
.NET 5.0
.NET 5.0
50
5,925.88 ns
644.980 ns
35.354 ns
?
?
0.3891
7,392 B
EnumerateBothDifferences
.NET 6.0
.NET 6.0
50
5,610.16 ns
1,228.934 ns
67.362 ns
?
?
0.3891
7,376 B
EnumerateBothDifferences
.NET 6.0 PGO + EA
.NET 6.0
50
5,309.65 ns
706.833 ns
38.744 ns
?
?
0.3891
7,376 B
BenchmarkCompositeDrawableAllocations
Method
Job
Runtime
Mean
Error
StdDev
Ratio
RatioSD
Gen 0
Allocated
TestEmptyGameLoop
.NET 5.0
.NET 5.0
8.903 μs
0.7601 μs
0.0417 μs
1.00
0.00
-
-
TestEmptyGameLoop
.NET 6.0
.NET 6.0
9.010 μs
1.8511 μs
0.1015 μs
1.01
0.01
-
-
TestEmptyGameLoop
.NET 6.0 PGO + EA
.NET 6.0
8.998 μs
5.5263 μs
0.3029 μs
1.01
0.03
-
-
TestAllocContainer
.NET 5.0
.NET 5.0
10.133 μs
0.8851 μs
0.0485 μs
1.00
0.00
0.0763
1,664 B
TestAllocContainer
.NET 6.0
.NET 6.0
9.440 μs
2.1729 μs
0.1191 μs
0.93
0.01
0.0763
1,664 B
TestAllocContainer
.NET 6.0 PGO + EA
.NET 6.0
10.363 μs
3.7879 μs
0.2076 μs
1.02
0.02
0.0763
1,664 B
TestLoadedContainer
.NET 5.0
.NET 5.0
17.369 μs
1.6466 μs
0.0903 μs
1.00
0.00
0.0916
2,120 B
TestLoadedContainer
.NET 6.0
.NET 6.0
16.417 μs
2.1673 μs
0.1188 μs
0.95
0.00
0.0916
2,016 B
TestLoadedContainer
.NET 6.0 PGO + EA
.NET 6.0
15.566 μs
0.7810 μs
0.0428 μs
0.90
0.00
0.0916
2,016 B
TestAllocSprite
.NET 5.0
.NET 5.0
9.795 μs
1.4259 μs
0.0782 μs
1.00
0.00
0.0610
1,416 B
TestAllocSprite
.NET 6.0
.NET 6.0
9.353 μs
0.3491 μs
0.0191 μs
0.95
0.01
0.0610
1,416 B
TestAllocSprite
.NET 6.0 PGO + EA
.NET 6.0
9.364 μs
1.1431 μs
0.0627 μs
0.96
0.00
0.0610
1,416 B
TestLoadedSprite
.NET 5.0
.NET 5.0
14.614 μs
2.2536 μs
0.1235 μs
1.00
0.00
0.0763
1,696 B
TestLoadedSprite
.NET 6.0
.NET 6.0
13.498 μs
2.1932 μs
0.1202 μs
0.92
0.01
0.0763
1,664 B
TestLoadedSprite
.NET 6.0 PGO + EA
.NET 6.0
13.407 μs
2.7403 μs
0.1502 μs
0.92
0.01
0.0763
1,664 B
BenchmarkDependencyContainer
Method
Job
Runtime
Mean
Error
StdDev
Ratio
RatioSD
Gen 0
Allocated
Get
.NET 5.0
.NET 5.0
125.76 ns
45.736 ns
2.507 ns
1.00
0.00
-
-
Get
.NET 6.0
.NET 6.0
101.53 ns
5.420 ns
0.297 ns
0.81
0.01
-
-
Get
.NET 6.0 PGO + EA
.NET 6.0
99.06 ns
5.907 ns
0.324 ns
0.79
0.02
-
-
GetNullable
.NET 5.0
.NET 5.0
217.66 ns
13.673 ns
0.749 ns
1.00
0.00
-
-
GetNullable
.NET 6.0
.NET 6.0
160.07 ns
21.302 ns
1.168 ns
0.74
0.01
-
-
GetNullable
.NET 6.0 PGO + EA
.NET 6.0
168.14 ns
23.699 ns
1.299 ns
0.77
0.01
-
-
InjectBdl
.NET 5.0
.NET 5.0
857.27 ns
131.999 ns
7.235 ns
1.00
0.00
0.0048
96 B
InjectBdl
.NET 6.0
.NET 6.0
663.71 ns
97.119 ns
5.323 ns
0.77
0.01
0.0019
48 B
InjectBdl
.NET 6.0 PGO + EA
.NET 6.0
720.16 ns
199.583 ns
10.940 ns
0.84
0.01
0.0019
48 B
InjectCached
.NET 5.0
.NET 5.0
1,543.10 ns
61.860 ns
3.391 ns
1.00
0.00
0.0095
192 B
InjectCached
.NET 6.0
.NET 6.0
1,188.08 ns
86.138 ns
4.722 ns
0.77
0.00
-
-
InjectCached
.NET 6.0 PGO + EA
.NET 6.0
1,242.81 ns
961.469 ns
52.701 ns
0.81
0.03
-
-
Method
Job
Runtime
FetchCount
Mean
Error
StdDev
Ratio
RatioSD
Gen 0
Gen 1
Gen 2
Allocated
BenchmarkRawCachingReuse
.NET 5.0
.NET 5.0
1
877.1 μs
264.0 μs
14.47 μs
0.02
0.00
27.3438
22.4609
17.5781
277 KB
BenchmarkRawCaching
.NET 5.0
.NET 5.0
1
36,725.7 μs
31,839.7 μs
1,745.24 μs
1.00
0.00
-
-
-
394 KB
BenchmarkNoCache
.NET 5.0
.NET 5.0
1
9,636.9 μs
2,363.0 μs
129.52 μs
0.26
0.01
1000.0000
1000.0000
1000.0000
8,380 KB
BenchmarkTimedExpiry
.NET 5.0
.NET 5.0
1
9,526.8 μs
3,847.2 μs
210.88 μs
0.26
0.01
953.1250
953.1250
953.1250
8,419 KB
BenchmarkTimedExpiryMemoryPooling
.NET 5.0
.NET 5.0
1
9,158.1 μs
5,574.7 μs
305.57 μs
0.25
0.02
953.1250
953.1250
953.1250
8,380 KB
BenchmarkRawCachingReuse
.NET 6.0
.NET 6.0
1
856.8 μs
634.7 μs
34.79 μs
0.02
0.00
23.4375
17.5781
13.6719
277 KB
BenchmarkRawCaching
.NET 6.0
.NET 6.0
1
36,684.8 μs
23,422.8 μs
1,283.88 μs
1.00
0.04
-
-
-
394 KB
BenchmarkNoCache
.NET 6.0
.NET 6.0
1
8,897.2 μs
2,221.8 μs
121.79 μs
0.24
0.01
1000.0000
1000.0000
1000.0000
8,380 KB
BenchmarkTimedExpiry
.NET 6.0
.NET 6.0
1
9,509.8 μs
11,529.7 μs
631.98 μs
0.26
0.03
953.1250
953.1250
953.1250
8,420 KB
BenchmarkTimedExpiryMemoryPooling
.NET 6.0
.NET 6.0
1
9,105.1 μs
4,559.5 μs
249.92 μs
0.25
0.00
953.1250
953.1250
953.1250
8,381 KB
BenchmarkRawCachingReuse
.NET 6.0 PGO + EA
.NET 6.0
1
887.8 μs
609.8 μs
33.42 μs
0.02
0.00
27.3438
22.4609
17.5781
277 KB
BenchmarkRawCaching
.NET 6.0 PGO + EA
.NET 6.0
1
37,237.9 μs
24,714.1 μs
1,354.67 μs
1.01
0.03
-
-
-
390 KB
BenchmarkNoCache
.NET 6.0 PGO + EA
.NET 6.0
1
9,238.4 μs
3,227.9 μs
176.93 μs
0.25
0.01
1000.0000
1000.0000
1000.0000
8,380 KB
BenchmarkTimedExpiry
.NET 6.0 PGO + EA
.NET 6.0
1
9,598.9 μs
6,391.9 μs
350.36 μs
0.26
0.01
953.1250
953.1250
953.1250
8,420 KB
BenchmarkTimedExpiryMemoryPooling
.NET 6.0 PGO + EA
.NET 6.0
1
9,216.4 μs
5,912.7 μs
324.09 μs
0.25
0.01
953.1250
953.1250
953.1250
8,381 KB
BenchmarkRawCachingReuse
.NET 5.0
.NET 5.0
10
1,872.4 μs
806.9 μs
44.23 μs
0.02
0.00
48.8281
42.9688
37.1094
403 KB
BenchmarkRawCaching
.NET 5.0
.NET 5.0
10
113,245.0 μs
78,777.7 μs
4,318.07 μs
1.00
0.00
-
-
-
792 KB
BenchmarkNoCache
.NET 5.0
.NET 5.0
10
51,655.6 μs
15,088.6 μs
827.06 μs
0.46
0.02
5500.0000
5500.0000
5500.0000
45,753 KB
BenchmarkTimedExpiry
.NET 5.0
.NET 5.0
10
30,194.4 μs
4,604.0 μs
252.36 μs
0.27
0.01
843.7500
843.7500
843.7500
25,089 KB
BenchmarkTimedExpiryMemoryPooling
.NET 5.0
.NET 5.0
10
30,396.4 μs
4,885.4 μs
267.78 μs
0.27
0.01
843.7500
843.7500
843.7500
24,986 KB
BenchmarkRawCachingReuse
.NET 6.0
.NET 6.0
10
1,895.3 μs
949.5 μs
52.05 μs
0.02
0.00
39.0625
35.1563
27.3438
402 KB
BenchmarkRawCaching
.NET 6.0
.NET 6.0
10
111,702.5 μs
85,518.4 μs
4,687.55 μs
0.99
0.05
-
-
-
794 KB
BenchmarkNoCache
.NET 6.0
.NET 6.0
10
50,339.2 μs
18,397.9 μs
1,008.45 μs
0.45
0.03
5500.0000
5500.0000
5500.0000
45,757 KB
BenchmarkTimedExpiry
.NET 6.0
.NET 6.0
10
30,053.6 μs
8,956.6 μs
490.94 μs
0.27
0.01
843.7500
843.7500
843.7500
25,090 KB
BenchmarkTimedExpiryMemoryPooling
.NET 6.0
.NET 6.0
10
29,828.1 μs
8,242.7 μs
451.81 μs
0.26
0.01
843.7500
843.7500
843.7500
24,987 KB
BenchmarkRawCachingReuse
.NET 6.0 PGO + EA
.NET 6.0
10
1,772.0 μs
975.1 μs
53.45 μs
0.02
0.00
46.8750
42.9688
35.1563
401 KB
BenchmarkRawCaching
.NET 6.0 PGO + EA
.NET 6.0
10
114,002.0 μs
87,680.3 μs
4,806.05 μs
1.01
0.08
-
-
-
794 KB
BenchmarkNoCache
.NET 6.0 PGO + EA
.NET 6.0
10
54,598.6 μs
19,064.1 μs
1,044.97 μs
0.48
0.03
5500.0000
5500.0000
5500.0000
45,758 KB
BenchmarkTimedExpiry
.NET 6.0 PGO + EA
.NET 6.0
10
30,417.9 μs
24,220.4 μs
1,327.60 μs
0.27
0.01
843.7500
843.7500
843.7500
25,090 KB
BenchmarkTimedExpiryMemoryPooling
.NET 6.0 PGO + EA
.NET 6.0
10
29,573.9 μs
8,210.6 μs
450.05 μs
0.26
0.01
843.7500
843.7500
843.7500
24,987 KB
BenchmarkRawCachingReuse
.NET 5.0
.NET 5.0
100
5,609.1 μs
2,651.4 μs
145.33 μs
0.03
0.00
31.2500
23.4375
15.6250
532 KB
BenchmarkRawCaching
.NET 5.0
.NET 5.0
100
166,048.2 μs
71,907.0 μs
3,941.47 μs
1.00
0.00
-
-
-
1,149 KB
BenchmarkNoCache
.NET 5.0
.NET 5.0
100
451,107.2 μs
118,514.8 μs
6,496.19 μs
2.72
0.10
50000.0000
50000.0000
50000.0000
419,441 KB
BenchmarkTimedExpiry
.NET 5.0
.NET 5.0
100
51,955.5 μs
7,588.7 μs
415.96 μs
0.31
0.01
1900.0000
1900.0000
1900.0000
37,702 KB
BenchmarkTimedExpiryMemoryPooling
.NET 5.0
.NET 5.0
100
49,357.4 μs
7,291.9 μs
399.69 μs
0.30
0.01
1900.0000
1900.0000
1900.0000
37,583 KB
BenchmarkRawCachingReuse
.NET 6.0
.NET 6.0
100
5,648.5 μs
1,355.8 μs
74.32 μs
0.03
0.00
31.2500
23.4375
15.6250
533 KB
BenchmarkRawCaching
.NET 6.0
.NET 6.0
100
169,319.6 μs
119,644.0 μs
6,558.09 μs
1.02
0.02
-
-
-
1,111 KB
BenchmarkNoCache
.NET 6.0
.NET 6.0
100
457,800.2 μs
304,398.9 μs
16,685.13 μs
2.76
0.07
48000.0000
48000.0000
48000.0000
419,482 KB
BenchmarkTimedExpiry
.NET 6.0
.NET 6.0
100
50,222.9 μs
6,070.2 μs
332.73 μs
0.30
0.01
1900.0000
1900.0000
1900.0000
37,702 KB
BenchmarkTimedExpiryMemoryPooling
.NET 6.0
.NET 6.0
100
51,332.6 μs
16,187.9 μs
887.31 μs
0.31
0.01
1900.0000
1900.0000
1900.0000
37,583 KB
BenchmarkRawCachingReuse
.NET 6.0 PGO + EA
.NET 6.0
100
5,145.5 μs
703.0 μs
38.53 μs
0.03
0.00
31.2500
23.4375
15.6250
533 KB
BenchmarkRawCaching
.NET 6.0 PGO + EA
.NET 6.0
100
164,254.5 μs
78,123.9 μs
4,282.24 μs
0.99
0.05
-
-
-
1,152 KB
BenchmarkNoCache
.NET 6.0 PGO + EA
.NET 6.0
100
464,690.0 μs
58,668.7 μs
3,215.83 μs
2.80
0.05
50000.0000
50000.0000
50000.0000
419,475 KB
BenchmarkTimedExpiry
.NET 6.0 PGO + EA
.NET 6.0
100
54,775.4 μs
41,435.8 μs
2,271.24 μs
0.33
0.01
1900.0000
1900.0000
1900.0000
37,702 KB
BenchmarkTimedExpiryMemoryPooling
.NET 6.0 PGO + EA
.NET 6.0
100
53,674.2 μs
21,566.1 μs
1,182.11 μs
0.32
0.01
1900.0000
1900.0000
1900.0000
37,583 KB
Method
Job
Runtime
Mean
Error
StdDev
Ratio
RatioSD
Gen 0
Allocated
StringMD5
.NET 5.0
.NET 5.0
1.230 μs
0.2355 μs
0.0129 μs
1.00
0.00
0.0172
344 B
StringMD5
.NET 6.0
.NET 6.0
1.204 μs
0.2833 μs
0.0155 μs
0.98
0.02
0.0172
344 B
StringMD5
.NET 6.0 PGO + EA
.NET 6.0
1.124 μs
0.3251 μs
0.0178 μs
0.91
0.01
0.0172
344 B
StringSHA
.NET 5.0
.NET 5.0
1.792 μs
0.0787 μs
0.0043 μs
1.00
0.00
0.0229
440 B
StringSHA
.NET 6.0
.NET 6.0
1.689 μs
0.1524 μs
0.0084 μs
0.94
0.01
0.0229
440 B
StringSHA
.NET 6.0 PGO + EA
.NET 6.0
1.660 μs
0.7430 μs
0.0407 μs
0.93
0.02
0.0229
440 B
StreamMD5
.NET 5.0
.NET 5.0
3.356 μs
2.9901 μs
0.1639 μs
1.00
0.00
0.0153
288 B
StreamMD5
.NET 6.0
.NET 6.0
3.209 μs
0.1995 μs
0.0109 μs
0.96
0.05
0.0153
288 B
StreamMD5
.NET 6.0 PGO + EA
.NET 6.0
3.221 μs
1.4496 μs
0.0795 μs
0.96
0.03
0.0153
288 B
StreamSHA
.NET 5.0
.NET 5.0
4.653 μs
0.6141 μs
0.0337 μs
1.00
0.00
0.0153
384 B
StreamSHA
.NET 6.0
.NET 6.0
5.165 μs
2.6174 μs
0.1435 μs
1.11
0.03
0.0153
384 B
StreamSHA
.NET 6.0 PGO + EA
.NET 6.0
4.820 μs
1.8453 μs
0.1011 μs
1.04
0.01
0.0153
384 B
Method
Job
Runtime
Mean
Error
StdDev
Ratio
RatioSD
Allocated
InterpolateMarginPadding
.NET 5.0
.NET 5.0
69.936 ns
6.360 ns
0.3486 ns
1.00
0.00
-
InterpolateMarginPadding
.NET 6.0
.NET 6.0
69.701 ns
24.217 ns
1.3274 ns
1.00
0.02
-
InterpolateMarginPadding
.NET 6.0 PGO + EA
.NET 6.0
67.250 ns
11.312 ns
0.6200 ns
0.96
0.01
-
InterpolateFloatGeneric
.NET 5.0
.NET 5.0
10.571 ns
3.150 ns
0.1727 ns
1.00
0.00
-
InterpolateFloatGeneric
.NET 6.0
.NET 6.0
9.964 ns
2.146 ns
0.1176 ns
0.94
0.01
-
InterpolateFloatGeneric
.NET 6.0 PGO + EA
.NET 6.0
11.491 ns
3.601 ns
0.1974 ns
1.09
0.02
-
InterpolateFloat
.NET 5.0
.NET 5.0
10.543 ns
1.322 ns
0.0725 ns
1.00
0.00
-
InterpolateFloat
.NET 6.0
.NET 6.0
10.117 ns
2.988 ns
0.1638 ns
0.96
0.02
-
InterpolateFloat
.NET 6.0 PGO + EA
.NET 6.0
11.518 ns
3.468 ns
0.1901 ns
1.09
0.02
-
BenchmarkInvalidationWithManyNotAlive
Method
Job
Runtime
Mean
Error
StdDev
Ratio
RatioSD
Allocated
RunFrame
.NET 5.0
.NET 5.0
14.04 ms
6.739 ms
0.369 ms
1.00
0.00
34 B
RunFrame
.NET 6.0
.NET 6.0
14.59 ms
15.705 ms
0.861 ms
1.04
0.08
102 B
RunFrame
.NET 6.0 PGO + EA
.NET 6.0
13.23 ms
2.630 ms
0.144 ms
0.94
0.02
96 B
BenchmarkLocalisableDescription
Method
Job
Runtime
Times
Mean
Error
StdDev
Ratio
RatioSD
GetLocalisableDescription
.NET 5.0
.NET 5.0
1
4.661 μs
1.4636 μs
0.0802 μs
1.00
0.00
GetLocalisableDescription
.NET 6.0
.NET 6.0
1
4.154 μs
0.5609 μs
0.0307 μs
0.89
0.02
GetLocalisableDescription
.NET 6.0 PGO + EA
.NET 6.0
1
4.675 μs
0.5011 μs
0.0275 μs
1.00
0.01
GetLocalisableDescription
.NET 5.0
.NET 5.0
10
44.619 μs
16.0753 μs
0.8811 μs
1.00
0.00
GetLocalisableDescription
.NET 6.0
.NET 6.0
10
40.473 μs
2.9850 μs
0.1636 μs
0.91
0.01
GetLocalisableDescription
.NET 6.0 PGO + EA
.NET 6.0
10
48.361 μs
13.7614 μs
0.7543 μs
1.08
0.02
GetLocalisableDescription
.NET 5.0
.NET 5.0
100
461.306 μs
243.9421 μs
13.3713 μs
1.00
0.00
GetLocalisableDescription
.NET 6.0
.NET 6.0
100
491.401 μs
471.7679 μs
25.8592 μs
1.07
0.07
GetLocalisableDescription
.NET 6.0 PGO + EA
.NET 6.0
100
482.297 μs
211.2182 μs
11.5776 μs
1.05
0.06
GetLocalisableDescription
.NET 5.0
.NET 5.0
1000
4,847.779 μs
2,397.1676 μs
131.3968 μs
1.00
0.00
GetLocalisableDescription
.NET 6.0
.NET 6.0
1000
4,575.050 μs
2,580.9514 μs
141.4707 μs
0.94
0.01
GetLocalisableDescription
.NET 6.0 PGO + EA
.NET 6.0
1000
4,674.133 μs
2,006.1442 μs
109.9635 μs
0.97
0.05
BenchmarkLocalisableString
Method
Job
Runtime
Mean
Error
StdDev
Ratio
RatioSD
Allocated
BenchmarkStringEquals
.NET 5.0
.NET 5.0
5.599 ns
2.1871 ns
0.1199 ns
1.00
0.00
-
BenchmarkStringEquals
.NET 6.0
.NET 6.0
6.543 ns
4.8883 ns
0.2679 ns
1.17
0.06
-
BenchmarkStringEquals
.NET 6.0 PGO + EA
.NET 6.0
5.645 ns
3.5344 ns
0.1937 ns
1.01
0.06
-
BenchmarkLocalisableStringEquals
.NET 5.0
.NET 5.0
11.667 ns
16.7706 ns
0.9193 ns
1.00
0.00
-
BenchmarkLocalisableStringEquals
.NET 6.0
.NET 6.0
11.318 ns
5.4649 ns
0.2996 ns
0.97
0.06
-
BenchmarkLocalisableStringEquals
.NET 6.0 PGO + EA
.NET 6.0
10.374 ns
0.8986 ns
0.0493 ns
0.89
0.07
-
BenchmarkRomanisableEquals
.NET 5.0
.NET 5.0
20.924 ns
16.7885 ns
0.9202 ns
1.00
0.00
-
BenchmarkRomanisableEquals
.NET 6.0
.NET 6.0
22.698 ns
10.8631 ns
0.5954 ns
1.09
0.02
-
BenchmarkRomanisableEquals
.NET 6.0 PGO + EA
.NET 6.0
21.374 ns
3.2702 ns
0.1793 ns
1.02
0.04
-
BenchmarkTranslatableEquals
.NET 5.0
.NET 5.0
21.871 ns
13.5194 ns
0.7410 ns
1.00
0.00
-
BenchmarkTranslatableEquals
.NET 6.0
.NET 6.0
21.259 ns
8.9399 ns
0.4900 ns
0.97
0.02
-
BenchmarkTranslatableEquals
.NET 6.0 PGO + EA
.NET 6.0
21.206 ns
4.5835 ns
0.2512 ns
0.97
0.03
-
BenchmarkFormattableEquals
.NET 5.0
.NET 5.0
25.917 ns
3.5909 ns
0.1968 ns
1.00
0.00
-
BenchmarkFormattableEquals
.NET 6.0
.NET 6.0
24.360 ns
10.7509 ns
0.5893 ns
0.94
0.02
-
BenchmarkFormattableEquals
.NET 6.0 PGO + EA
.NET 6.0
23.030 ns
5.6182 ns
0.3080 ns
0.89
0.01
-
BenchmarkStringGetHashCode
.NET 5.0
.NET 5.0
3.490 ns
2.3585 ns
0.1293 ns
1.00
0.00
-
BenchmarkStringGetHashCode
.NET 6.0
.NET 6.0
3.784 ns
1.2237 ns
0.0671 ns
1.09
0.04
-
BenchmarkStringGetHashCode
.NET 6.0 PGO + EA
.NET 6.0
3.040 ns
2.6993 ns
0.1480 ns
0.87
0.02
-
BenchmarkLocalisableStringGetHashCode
.NET 5.0
.NET 5.0
13.996 ns
2.0558 ns
0.1127 ns
1.00
0.00
-
BenchmarkLocalisableStringGetHashCode
.NET 6.0
.NET 6.0
15.543 ns
9.2800 ns
0.5087 ns
1.11
0.03
-
BenchmarkLocalisableStringGetHashCode
.NET 6.0 PGO + EA
.NET 6.0
14.419 ns
1.5895 ns
0.0871 ns
1.03
0.01
-
BenchmarkRomanisableGetHashCode
.NET 5.0
.NET 5.0
22.873 ns
3.5040 ns
0.1921 ns
1.00
0.00
-
BenchmarkRomanisableGetHashCode
.NET 6.0
.NET 6.0
26.092 ns
6.1714 ns
0.3383 ns
1.14
0.02
-
BenchmarkRomanisableGetHashCode
.NET 6.0 PGO + EA
.NET 6.0
24.769 ns
6.2685 ns
0.3436 ns
1.08
0.01
-
BenchmarkTranslatableGetHashCode
.NET 5.0
.NET 5.0
36.250 ns
12.5646 ns
0.6887 ns
1.00
0.00
-
BenchmarkTranslatableGetHashCode
.NET 6.0
.NET 6.0
36.334 ns
15.6798 ns
0.8595 ns
1.00
0.02
-
BenchmarkTranslatableGetHashCode
.NET 6.0 PGO + EA
.NET 6.0
32.256 ns
5.2688 ns
0.2888 ns
0.89
0.02
-
BenchmarkFormattableGetHashCode
.NET 5.0
.NET 5.0
25.028 ns
15.6634 ns
0.8586 ns
1.00
0.00
-
BenchmarkFormattableGetHashCode
.NET 6.0
.NET 6.0
27.618 ns
4.6716 ns
0.2561 ns
1.10
0.05
-
BenchmarkFormattableGetHashCode
.NET 6.0 PGO + EA
.NET 6.0
23.833 ns
3.6404 ns
0.1995 ns
0.95
0.02
-
BenchmarkLocalisedBindableString
Method
Job
Runtime
Mean
Error
StdDev
Ratio
RatioSD
Gen 0
Allocated
BenchmarkNonLocalised
.NET 5.0
.NET 5.0
112.7 ns
10.97 ns
0.60 ns
1.00
0.00
0.0081
152 B
BenchmarkNonLocalised
.NET 6.0
.NET 6.0
102.5 ns
40.16 ns
2.20 ns
0.91
0.02
0.0081
152 B
BenchmarkNonLocalised
.NET 6.0 PGO + EA
.NET 6.0
104.2 ns
15.12 ns
0.83 ns
0.92
0.01
0.0081
152 B
BenchmarkLocalised
.NET 5.0
.NET 5.0
1,346.5 ns
708.78 ns
38.85 ns
1.00
0.00
0.0401
784 B
BenchmarkLocalised
.NET 6.0
.NET 6.0
1,405.8 ns
528.24 ns
28.95 ns
1.04
0.01
0.0401
784 B
BenchmarkLocalised
.NET 6.0 PGO + EA
.NET 6.0
1,466.7 ns
489.17 ns
26.81 ns
1.09
0.02
0.0401
784 B
Method
Job
Runtime
Mean
Error
StdDev
Ratio
RatioSD
Allocated
RunFrame
.NET 5.0
.NET 5.0
12.04 μs
7.739 μs
0.424 μs
1.00
0.00
-
RunFrame
.NET 6.0
.NET 6.0
10.84 μs
2.329 μs
0.128 μs
0.90
0.02
-
RunFrame
.NET 6.0 PGO + EA
.NET 6.0
10.14 μs
5.811 μs
0.319 μs
0.84
0.06
-
BenchmarkManySpinningBoxes
Method
Job
Runtime
Mean
Error
StdDev
Ratio
RatioSD
Allocated
RunFrame
.NET 5.0
.NET 5.0
1.169 ms
0.0809 ms
0.0044 ms
1.00
0.00
4 B
RunFrame
.NET 6.0
.NET 6.0
1.111 ms
0.2861 ms
0.0157 ms
0.95
0.02
31 B
RunFrame
.NET 6.0 PGO + EA
.NET 6.0
1.098 ms
0.3973 ms
0.0218 ms
0.94
0.02
7 B
RunFrameWithAutoSize
.NET 5.0
.NET 5.0
2.027 ms
0.5384 ms
0.0295 ms
1.00
0.00
8 B
RunFrameWithAutoSize
.NET 6.0
.NET 6.0
1.886 ms
0.0678 ms
0.0037 ms
0.93
0.01
6 B
RunFrameWithAutoSize
.NET 6.0 PGO + EA
.NET 6.0
1.827 ms
1.5085 ms
0.0827 ms
0.90
0.03
11 B
RunFrameWithAutoSizeDuration
.NET 5.0
.NET 5.0
1.792 ms
0.0618 ms
0.0034 ms
1.00
0.00
452 B
RunFrameWithAutoSizeDuration
.NET 6.0
.NET 6.0
1.548 ms
0.7042 ms
0.0386 ms
0.86
0.02
453 B
RunFrameWithAutoSizeDuration
.NET 6.0 PGO + EA
.NET 6.0
1.589 ms
0.2461 ms
0.0135 ms
0.89
0.01
454 B
BenchmarkScreenExtensions
Method
Job
Runtime
Mean
Error
StdDev
Ratio
RatioSD
Allocated
IsCurrentScreen
.NET 5.0
.NET 5.0
15.15 ns
4.806 ns
0.263 ns
1.00
0.00
-
IsCurrentScreen
.NET 6.0
.NET 6.0
13.55 ns
7.492 ns
0.411 ns
0.89
0.02
-
IsCurrentScreen
.NET 6.0 PGO + EA
.NET 6.0
13.06 ns
15.770 ns
0.864 ns
0.86
0.07
-
BenchmarkSlimReadOnlyCollection
Method
Job
Runtime
Mean
Error
StdDev
Ratio
RatioSD
Gen 0
Allocated
List
.NET 5.0
.NET 5.0
53.29 μs
9.880 μs
0.542 μs
1.00
0.00
-
-
ListAsReadOnly
.NET 5.0
.NET 5.0
165.05 μs
20.553 μs
1.127 μs
3.10
0.05
3.4180
64,000 B
ListAsSlimReadOnly
.NET 5.0
.NET 5.0
41.91 μs
17.892 μs
0.981 μs
0.79
0.02
-
-
List
.NET 6.0
.NET 6.0
22.23 μs
12.744 μs
0.699 μs
0.42
0.01
-
-
ListAsReadOnly
.NET 6.0
.NET 6.0
183.33 μs
37.298 μs
2.044 μs
3.44
0.07
3.4180
64,000 B
ListAsSlimReadOnly
.NET 6.0
.NET 6.0
21.05 μs
6.484 μs
0.355 μs
0.40
0.01
-
-
List
.NET 6.0 PGO + EA
.NET 6.0
22.72 μs
11.582 μs
0.635 μs
0.43
0.01
-
-
ListAsReadOnly
.NET 6.0 PGO + EA
.NET 6.0
186.41 μs
60.202 μs
3.300 μs
3.50
0.08
3.4180
64,000 B
ListAsSlimReadOnly
.NET 6.0 PGO + EA
.NET 6.0
24.43 μs
12.697 μs
0.696 μs
0.46
0.02
-
-
BenchmarkSpinningParentWithManyAlive
Method
Job
Runtime
Mean
Error
StdDev
Ratio
RatioSD
Allocated
RunFrame
.NET 5.0
.NET 5.0
6.870 ms
3.868 ms
0.2120 ms
1.00
0.00
14 B
RunFrame
.NET 6.0
.NET 6.0
5.904 ms
4.716 ms
0.2585 ms
0.86
0.03
24 B
RunFrame
.NET 6.0 PGO + EA
.NET 6.0
5.648 ms
1.205 ms
0.0661 ms
0.82
0.03
24 B
Method
Job
Runtime
Mean
Error
StdDev
Ratio
RatioSD
Gen 0
Gen 1
Allocated
DetectBenchmark
.NET 5.0
.NET 5.0
368.7 ns
454.8 ns
24.93 ns
1.00
0.00
0.0248
0.0100
464 B
DetectBenchmark
.NET 6.0
.NET 6.0
273.1 ns
440.8 ns
24.16 ns
0.74
0.09
0.0238
0.0005
450 B
DetectBenchmark
.NET 6.0 PGO + EA
.NET 6.0
313.5 ns
839.2 ns
46.00 ns
0.85
0.14
0.0238
-
450 B
Method
Job
Runtime
Mean
Error
StdDev
Ratio
RatioSD
Gen 0
Gen 1
Allocated
CreateSingleBlank
.NET 5.0
.NET 5.0
12.61 ns
11.703 ns
0.641 ns
1.00
0.00
0.0051
-
96 B
CreateSingleBlank
.NET 6.0
.NET 6.0
11.30 ns
5.051 ns
0.277 ns
0.90
0.07
0.0051
-
96 B
CreateSingleBlank
.NET 6.0 PGO + EA
.NET 6.0
11.65 ns
0.278 ns
0.015 ns
0.93
0.05
0.0051
0.0000
96 B
CreateSequenceWithDefaultEasing
.NET 5.0
.NET 5.0
3,277.48 ns
774.732 ns
42.466 ns
1.00
0.00
0.1373
-
2,584 B
CreateSequenceWithDefaultEasing
.NET 6.0
.NET 6.0
2,954.59 ns
1,832.369 ns
100.438 ns
0.90
0.03
0.1373
-
2,584 B
CreateSequenceWithDefaultEasing
.NET 6.0 PGO + EA
.NET 6.0
2,862.46 ns
526.806 ns
28.876 ns
0.87
0.02
0.1373
-
2,584 B
ApplySequenceWithDefaultEasing
.NET 5.0
.NET 5.0
1,048.70 ns
81.581 ns
4.472 ns
1.00
0.00
0.0439
-
832 B
ApplySequenceWithDefaultEasing
.NET 6.0
.NET 6.0
957.50 ns
304.654 ns
16.699 ns
0.91
0.02
0.0439
-
832 B
ApplySequenceWithDefaultEasing
.NET 6.0 PGO + EA
.NET 6.0
967.30 ns
400.497 ns
21.953 ns
0.92
0.02
0.0439
-
832 B
CreateSequenceWithValueEasing
.NET 5.0
.NET 5.0
3,229.17 ns
734.035 ns
40.235 ns
1.00
0.00
0.1373
-
2,584 B
CreateSequenceWithValueEasing
.NET 6.0
.NET 6.0
2,948.52 ns
737.265 ns
40.412 ns
0.91
0.00
0.1373
-
2,584 B
CreateSequenceWithValueEasing
.NET 6.0 PGO + EA
.NET 6.0
3,117.46 ns
728.405 ns
39.926 ns
0.97
0.01
0.1373
-
2,584 B
ApplySequenceWithValueEasing
.NET 5.0
.NET 5.0
1,153.11 ns
532.926 ns
29.211 ns
1.00
0.00
0.0439
-
832 B
ApplySequenceWithValueEasing
.NET 6.0
.NET 6.0
987.79 ns
101.899 ns
5.585 ns
0.86
0.02
0.0439
-
832 B
ApplySequenceWithValueEasing
.NET 6.0 PGO + EA
.NET 6.0
987.18 ns
379.696 ns
20.812 ns
0.86
0.01
0.0439
-
832 B
CreateSequenceWithReferenceEasing
.NET 5.0
.NET 5.0
3,436.05 ns
565.483 ns
30.996 ns
1.00
0.00
0.1411
-
2,656 B
CreateSequenceWithReferenceEasing
.NET 6.0
.NET 6.0
3,046.64 ns
2,123.662 ns
116.405 ns
0.89
0.04
0.1411
-
2,656 B
CreateSequenceWithReferenceEasing
.NET 6.0 PGO + EA
.NET 6.0
2,902.82 ns
1,820.396 ns
99.782 ns
0.85
0.04
0.1411
-
2,656 B
ApplySequenceWithReferenceEasing
.NET 5.0
.NET 5.0
1,177.87 ns
224.606 ns
12.311 ns
1.00
0.00
0.0458
-
856 B
ApplySequenceWithReferenceEasing
.NET 6.0
.NET 6.0
968.81 ns
323.066 ns
17.708 ns
0.82
0.02
0.0458
-
856 B
ApplySequenceWithReferenceEasing
.NET 6.0 PGO + EA
.NET 6.0
1,000.74 ns
188.860 ns
10.352 ns
0.85
0.02
0.0458
-
856 B
Method
Job
Runtime
Mean
Error
StdDev
Ratio
RatioSD
Allocated
UpdateTransformsWithManyPresent
.NET 5.0
.NET 5.0
603.6 μs
173.52 μs
9.51 μs
1.00
0.00
-
UpdateTransformsWithManyPresent
.NET 6.0
.NET 6.0
546.7 μs
95.53 μs
5.24 μs
0.91
0.02
1 B
UpdateTransformsWithManyPresent
.NET 6.0 PGO + EA
.NET 6.0
534.8 μs
116.19 μs
6.37 μs
0.89
0.01
1 B
Method
Job
Runtime
ItemCount
Mean
Error
StdDev
Ratio
RatioSD
Gen 0
Gen 1
Allocated
Add
.NET 5.0
.NET 5.0
1
288.3 ns
41.29 ns
2.26 ns
1.00
0.00
0.0091
-
176 B
RemoveOne
.NET 5.0
.NET 5.0
1
317.5 ns
85.11 ns
4.67 ns
1.10
0.02
0.0091
-
176 B
RemoveAllIteratively
.NET 5.0
.NET 5.0
1
329.8 ns
31.65 ns
1.73 ns
1.14
0.01
0.0091
-
176 B
RemoveAllStaggered
.NET 5.0
.NET 5.0
1
344.6 ns
145.89 ns
8.00 ns
1.20
0.02
0.0091
-
176 B
Clear
.NET 5.0
.NET 5.0
1
304.2 ns
81.80 ns
4.48 ns
1.06
0.02
0.0091
-
176 B
Contains
.NET 5.0
.NET 5.0
1
321.5 ns
130.57 ns
7.16 ns
1.11
0.02
0.0091
-
176 B
AddAndEnumerate
.NET 5.0
.NET 5.0
1
524.8 ns
160.33 ns
8.79 ns
1.82
0.04
0.0162
-
304 B
ClearAndEnumerate
.NET 5.0
.NET 5.0
1
423.5 ns
246.49 ns
13.51 ns
1.47
0.04
0.0114
-
216 B
Add
.NET 6.0
.NET 6.0
1
323.3 ns
146.01 ns
8.00 ns
1.12
0.03
0.0091
-
176 B
RemoveOne
.NET 6.0
.NET 6.0
1
331.8 ns
137.64 ns
7.54 ns
1.15
0.02
0.0091
-
176 B
RemoveAllIteratively
.NET 6.0
.NET 6.0
1
330.2 ns
85.45 ns
4.68 ns
1.15
0.02
0.0091
-
176 B
RemoveAllStaggered
.NET 6.0
.NET 6.0
1
357.9 ns
78.76 ns
4.32 ns
1.24
0.02
0.0091
-
176 B
Clear
.NET 6.0
.NET 6.0
1
308.2 ns
131.86 ns
7.23 ns
1.07
0.03
0.0091
-
176 B
Contains
.NET 6.0
.NET 6.0
1
326.2 ns
90.08 ns
4.94 ns
1.13
0.02
0.0091
-
176 B
AddAndEnumerate
.NET 6.0
.NET 6.0
1
504.8 ns
182.61 ns
10.01 ns
1.75
0.02
0.0162
-
304 B
ClearAndEnumerate
.NET 6.0
.NET 6.0
1
385.2 ns
10.54 ns
0.58 ns
1.34
0.01
0.0114
-
216 B
Add
.NET 6.0 PGO + EA
.NET 6.0
1
296.3 ns
134.85 ns
7.39 ns
1.03
0.03
0.0091
-
176 B
RemoveOne
.NET 6.0 PGO + EA
.NET 6.0
1
332.6 ns
45.84 ns
2.51 ns
1.15
0.02
0.0091
-
176 B
RemoveAllIteratively
.NET 6.0 PGO + EA
.NET 6.0
1
323.2 ns
19.73 ns
1.08 ns
1.12
0.01
0.0091
-
176 B
RemoveAllStaggered
.NET 6.0 PGO + EA
.NET 6.0
1
358.5 ns
78.41 ns
4.30 ns
1.24
0.02
0.0091
-
176 B
Clear
.NET 6.0 PGO + EA
.NET 6.0
1
319.4 ns
253.94 ns
13.92 ns
1.11
0.04
0.0091
-
176 B
Contains
.NET 6.0 PGO + EA
.NET 6.0
1
321.0 ns
192.23 ns
10.54 ns
1.11
0.04
0.0091
-
176 B
AddAndEnumerate
.NET 6.0 PGO + EA
.NET 6.0
1
492.5 ns
191.81 ns
10.51 ns
1.71
0.03
0.0162
-
304 B
ClearAndEnumerate
.NET 6.0 PGO + EA
.NET 6.0
1
382.4 ns
110.57 ns
6.06 ns
1.33
0.01
0.0114
-
216 B
Add
.NET 5.0
.NET 5.0
10
2,423.5 ns
267.70 ns
14.67 ns
1.00
0.00
0.0420
-
824 B
RemoveOne
.NET 5.0
.NET 5.0
10
2,552.6 ns
1,441.04 ns
78.99 ns
1.05
0.03
0.0420
-
824 B
RemoveAllIteratively
.NET 5.0
.NET 5.0
10
2,950.2 ns
446.89 ns
24.50 ns
1.22
0.01
0.0420
-
824 B
RemoveAllStaggered
.NET 5.0
.NET 5.0
10
2,992.2 ns
1,276.39 ns
69.96 ns
1.23
0.03
0.0420
-
824 B
Clear
.NET 5.0
.NET 5.0
10
2,498.4 ns
430.54 ns
23.60 ns
1.03
0.01
0.0420
-
824 B
Contains
.NET 5.0
.NET 5.0
10
2,578.3 ns
932.38 ns
51.11 ns
1.06
0.02
0.0420
-
824 B
AddAndEnumerate
.NET 5.0
.NET 5.0
10
3,173.3 ns
747.89 ns
40.99 ns
1.31
0.02
0.0610
-
1,200 B
ClearAndEnumerate
.NET 5.0
.NET 5.0
10
2,602.3 ns
438.27 ns
24.02 ns
1.07
0.01
0.0458
-
864 B
Add
.NET 6.0
.NET 6.0
10
2,524.9 ns
119.82 ns
6.57 ns
1.04
0.01
0.0420
-
824 B
RemoveOne
.NET 6.0
.NET 6.0
10
2,510.4 ns
590.53 ns
32.37 ns
1.04
0.01
0.0420
-
824 B
RemoveAllIteratively
.NET 6.0
.NET 6.0
10
2,749.6 ns
315.46 ns
17.29 ns
1.13
0.01
0.0420
-
824 B
RemoveAllStaggered
.NET 6.0
.NET 6.0
10
2,966.1 ns
1,190.03 ns
65.23 ns
1.22
0.02
0.0420
-
824 B
Clear
.NET 6.0
.NET 6.0
10
2,660.3 ns
1,802.75 ns
98.81 ns
1.10
0.05
0.0420
-
824 B
Contains
.NET 6.0
.NET 6.0
10
2,740.0 ns
422.50 ns
23.16 ns
1.13
0.00
0.0420
-
824 B
AddAndEnumerate
.NET 6.0
.NET 6.0
10
3,637.8 ns
836.33 ns
45.84 ns
1.50
0.02
0.0610
-
1,200 B
ClearAndEnumerate
.NET 6.0
.NET 6.0
10
2,734.5 ns
902.97 ns
49.49 ns
1.13
0.03
0.0458
-
864 B
Add
.NET 6.0 PGO + EA
.NET 6.0
10
2,597.4 ns
1,819.88 ns
99.75 ns
1.07
0.04
0.0420
-
824 B
RemoveOne
.NET 6.0 PGO + EA
.NET 6.0
10
2,542.0 ns
372.68 ns
20.43 ns
1.05
0.00
0.0420
-
824 B
RemoveAllIteratively
.NET 6.0 PGO + EA
.NET 6.0
10
2,750.6 ns
791.94 ns
43.41 ns
1.13
0.02
0.0420
-
824 B
RemoveAllStaggered
.NET 6.0 PGO + EA
.NET 6.0
10
2,747.9 ns
776.32 ns
42.55 ns
1.13
0.01
0.0420
-
824 B
Clear
.NET 6.0 PGO + EA
.NET 6.0
10
2,431.2 ns
956.47 ns
52.43 ns
1.00
0.03
0.0420
-
824 B
Contains
.NET 6.0 PGO + EA
.NET 6.0
10
2,463.5 ns
151.82 ns
8.32 ns
1.02
0.00
0.0420
-
824 B
AddAndEnumerate
.NET 6.0 PGO + EA
.NET 6.0
10
3,303.4 ns
132.13 ns
7.24 ns
1.36
0.01
0.0610
-
1,200 B
ClearAndEnumerate
.NET 6.0 PGO + EA
.NET 6.0
10
2,632.4 ns
2,679.79 ns
146.89 ns
1.09
0.06
0.0458
-
864 B
Add
.NET 5.0
.NET 5.0
100
23,643.6 ns
8,743.01 ns
479.23 ns
1.00
0.00
0.3357
-
6,640 B
RemoveOne
.NET 5.0
.NET 5.0
100
23,945.9 ns
17,235.77 ns
944.75 ns
1.01
0.02
0.3357
-
6,640 B
RemoveAllIteratively
.NET 5.0
.NET 5.0
100
27,307.3 ns
16,366.21 ns
897.09 ns
1.16
0.06
0.3357
-
6,640 B
RemoveAllStaggered
.NET 5.0
.NET 5.0
100
40,903.5 ns
2,175.92 ns
119.27 ns
1.73
0.03
0.3052
-
6,640 B
Clear
.NET 5.0
.NET 5.0
100
24,021.5 ns
10,287.34 ns
563.88 ns
1.02
0.04
0.3357
-
6,640 B
Contains
.NET 5.0
.NET 5.0
100
24,271.7 ns
5,823.88 ns
319.23 ns
1.03
0.02
0.3357
-
6,640 B
AddAndEnumerate
.NET 5.0
.NET 5.0
100
27,728.6 ns
7,293.20 ns
399.77 ns
1.17
0.04
0.4578
-
8,760 B
ClearAndEnumerate
.NET 5.0
.NET 5.0
100
23,932.2 ns
6,940.73 ns
380.44 ns
1.01
0.01
0.3357
-
6,680 B
Add
.NET 6.0
.NET 6.0
100
24,266.0 ns
6,528.06 ns
357.83 ns
1.03
0.02
0.3357
-
6,640 B
RemoveOne
.NET 6.0
.NET 6.0
100
24,954.2 ns
7,904.68 ns
433.28 ns
1.06
0.04
0.3357
-
6,640 B
RemoveAllIteratively
.NET 6.0
.NET 6.0
100
28,035.8 ns
13,204.07 ns
723.76 ns
1.19
0.05
0.3357
-
6,640 B
RemoveAllStaggered
.NET 6.0
.NET 6.0
100
39,025.0 ns
16,119.07 ns
883.54 ns
1.65
0.06
0.3052
-
6,640 B
Clear
.NET 6.0
.NET 6.0
100
23,526.7 ns
6,410.43 ns
351.38 ns
1.00
0.01
0.3357
-
6,640 B
Contains
.NET 6.0
.NET 6.0
100
24,705.2 ns
18,586.64 ns
1,018.80 ns
1.05
0.06
0.3357
-
6,640 B
AddAndEnumerate
.NET 6.0
.NET 6.0
100
27,454.7 ns
6,039.40 ns
331.04 ns
1.16
0.03
0.4578
-
8,760 B
ClearAndEnumerate
.NET 6.0
.NET 6.0
100
23,249.1 ns
999.48 ns
54.78 ns
0.98
0.02
0.3357
-
6,680 B
Add
.NET 6.0 PGO + EA
.NET 6.0
100
23,930.3 ns
10,830.02 ns
593.63 ns
1.01
0.04
0.3357
-
6,640 B
RemoveOne
.NET 6.0 PGO + EA
.NET 6.0
100
23,798.2 ns
5,541.93 ns
303.77 ns
1.01
0.03
0.3357
-
6,640 B
RemoveAllIteratively
.NET 6.0 PGO + EA
.NET 6.0
100
27,485.2 ns
6,163.57 ns
337.85 ns
1.16
0.02
0.3357
-
6,640 B
RemoveAllStaggered
.NET 6.0 PGO + EA
.NET 6.0
100
39,469.8 ns
12,170.65 ns
667.11 ns
1.67
0.06
0.3052
-
6,640 B
Clear
.NET 6.0 PGO + EA
.NET 6.0
100
22,869.7 ns
3,186.26 ns
174.65 ns
0.97
0.03
0.3357
-
6,640 B
Contains
.NET 6.0 PGO + EA
.NET 6.0
100
25,818.9 ns
7,027.83 ns
385.22 ns
1.09
0.04
0.3357
-
6,640 B
AddAndEnumerate
.NET 6.0 PGO + EA
.NET 6.0
100
26,858.9 ns
4,769.48 ns
261.43 ns
1.14
0.02
0.4578
-
8,760 B
ClearAndEnumerate
.NET 6.0 PGO + EA
.NET 6.0
100
22,502.6 ns
3,710.93 ns
203.41 ns
0.95
0.02
0.3357
-
6,680 B
Add
.NET 5.0
.NET 5.0
1000
238,862.2 ns
82,921.23 ns
4,545.19 ns
1.00
0.00
2.9297
0.2441
56,984 B
RemoveOne
.NET 5.0
.NET 5.0
1000
248,517.0 ns
53,225.33 ns
2,917.46 ns
1.04
0.03
2.9297
-
56,984 B
RemoveAllIteratively
.NET 5.0
.NET 5.0
1000
289,003.0 ns
172,388.19 ns
9,449.18 ns
1.21
0.04
2.9297
-
56,984 B
RemoveAllStaggered
.NET 5.0
.NET 5.0
1000
1,662,460.4 ns
207,403.99 ns
11,368.51 ns
6.96
0.17
1.9531
-
56,985 B
Clear
.NET 5.0
.NET 5.0
1000
237,540.9 ns
102,184.56 ns
5,601.08 ns
0.99
0.02
2.9297
-
56,984 B
Contains
.NET 5.0
.NET 5.0
1000
258,088.5 ns
15,204.58 ns
833.41 ns
1.08
0.02
2.9297
-
56,984 B
AddAndEnumerate
.NET 5.0
.NET 5.0
1000
312,397.5 ns
143,481.94 ns
7,864.73 ns
1.31
0.05
3.9063
0.4883
73,632 B
ClearAndEnumerate
.NET 5.0
.NET 5.0
1000
242,634.3 ns
62,787.36 ns
3,441.59 ns
1.02
0.02
2.9297
-
57,024 B
Add
.NET 6.0
.NET 6.0
1000
240,373.4 ns
103,322.52 ns
5,663.46 ns
1.01
0.04
2.9297
0.2441
56,984 B
RemoveOne
.NET 6.0
.NET 6.0
1000
237,860.3 ns
107,247.21 ns
5,878.58 ns
1.00
0.01
2.9297
-
56,984 B
RemoveAllIteratively
.NET 6.0
.NET 6.0
1000
271,145.1 ns
78,486.04 ns
4,302.08 ns
1.14
0.00
2.9297
-
56,984 B
RemoveAllStaggered
.NET 6.0
.NET 6.0
1000
1,316,039.1 ns
206,730.57 ns
11,331.60 ns
5.51
0.14
1.9531
-
56,986 B
Clear
.NET 6.0
.NET 6.0
1000
247,980.0 ns
103,692.48 ns
5,683.73 ns
1.04
0.03
2.9297
0.2441
56,984 B
Contains
.NET 6.0
.NET 6.0
1000
244,322.9 ns
43,574.72 ns
2,388.48 ns
1.02
0.02
2.9297
0.2441
56,984 B
AddAndEnumerate
.NET 6.0
.NET 6.0
1000
268,993.8 ns
94,747.86 ns
5,193.45 ns
1.13
0.04
3.9063
0.4883
73,632 B
ClearAndEnumerate
.NET 6.0
.NET 6.0
1000
282,215.5 ns
112,060.41 ns
6,142.41 ns
1.18
0.05
2.9297
-
57,024 B
Add
.NET 6.0 PGO + EA
.NET 6.0
1000
239,934.8 ns
84,179.59 ns
4,614.17 ns
1.00
0.02
2.9297
-
56,984 B
RemoveOne
.NET 6.0 PGO + EA
.NET 6.0
1000
260,894.6 ns
132,351.92 ns
7,254.66 ns
1.09
0.01
2.9297
-
56,984 B
RemoveAllIteratively
.NET 6.0 PGO + EA
.NET 6.0
1000
267,464.5 ns
34,935.47 ns
1,914.93 ns
1.12
0.02
2.9297
-
56,984 B
RemoveAllStaggered
.NET 6.0 PGO + EA
.NET 6.0
1000
1,352,005.1 ns
864,910.71 ns
47,408.67 ns
5.66
0.24
1.9531
-
56,985 B
Clear
.NET 6.0 PGO + EA
.NET 6.0
1000
250,431.2 ns
93,648.58 ns
5,133.19 ns
1.05
0.01
2.9297
0.2441
56,984 B
Contains
.NET 6.0 PGO + EA
.NET 6.0
1000
257,267.2 ns
122,217.22 ns
6,699.14 ns
1.08
0.01
2.9297
-
56,984 B
AddAndEnumerate
.NET 6.0 PGO + EA
.NET 6.0
1000
262,176.4 ns
142,760.67 ns
7,825.19 ns
1.10
0.04
3.9063
0.9766
73,632 B
ClearAndEnumerate
.NET 6.0 PGO + EA
.NET 6.0
1000
227,613.5 ns
41,140.82 ns
2,255.07 ns
0.95
0.01
2.9297
0.2441
57,024 B
Executed with:
Notes:
Job.ShortRun
withJob.Default
.if (FetchCount > 100) throw new NotImplementedException();
inBenchmarkFontLoading.cs
will crash BenchmarkDotNet so I limitFetchCount
to up to 100.