| System.Runtime.Intrinsics.Tests.Perf_Vector128Of<SByte>.LessThanAnyBenchmark |
27.75 |
0.35 |
-98.74 |
| System.Runtime.Intrinsics.Tests.Perf_Vector128Of<Byte>.LessThanAnyBenchmark |
28.82 |
0.41 |
-98.58 |
| System.Runtime.Intrinsics.Tests.Perf_Vector128Of<Int16>.GreaterThanAllBenchmark |
18.14 |
0.27 |
-98.51 |
| System.Runtime.Intrinsics.Tests.Perf_Vector128Float.LessThanAnyBenchmark |
10.92 |
0.24 |
-97.8 |
| System.Runtime.Intrinsics.Tests.Perf_Vector128Of<Int32>.LessThanAnyBenchmark |
8.59 |
0.24 |
-97.21 |
| System.Runtime.Intrinsics.Tests.Perf_Vector128Float.EqualsBenchmark |
38.83 |
1.26 |
-96.76 |
| System.Runtime.Intrinsics.Tests.Perf_Vector128Of<UInt16>.GreaterThanAllBenchmark |
17.39 |
0.58 |
-96.66 |
| System.Runtime.Intrinsics.Tests.Perf_Vector128Of<Single>.SumBenchmark |
9.48 |
0.33 |
-96.52 |
| System.Runtime.Intrinsics.Tests.Perf_Vector128Of<UInt32>.LessThanAnyBenchmark |
8.59 |
0.54 |
-93.71 |
| System.Runtime.Intrinsics.Tests.Perf_Vector128Of<Double>.EqualityOperatorBenchmark |
3.53 |
0.24 |
-93.2 |
| System.Runtime.Intrinsics.Tests.Perf_Vector128Of<SByte>.GreaterThanBenchmark |
43.5 |
3.05 |
-92.99 |
| System.Runtime.Intrinsics.Tests.Perf_Vector128Of<SByte>.GreaterThanAnyBenchmark |
3.75 |
0.28 |
-92.53 |
| System.Runtime.Intrinsics.Tests.Perf_Vector128Of<SByte>.AddOperatorBenchmark |
36 |
2.81 |
-92.19 |
| System.Runtime.Intrinsics.Tests.Perf_Vector128Of<Byte>.GreaterThanBenchmark |
37.99 |
3.06 |
-91.95 |
| System.Runtime.Intrinsics.Tests.Perf_Vector128Of<Byte>.AddOperatorBenchmark |
35.33 |
2.87 |
-91.88 |
| System.Runtime.Intrinsics.Tests.Perf_Vector128Of<SByte>.NegateBenchmark |
33.32 |
2.79 |
-91.63 |
| System.Runtime.Intrinsics.Tests.Perf_Vector128Of<Byte>.NegateBenchmark |
32.9 |
2.84 |
-91.37 |
| System.Runtime.Intrinsics.Tests.Perf_Vector128Of<SByte>.LessThanAllBenchmark |
3.7 |
0.33 |
-91.08 |
| System.Runtime.Intrinsics.Tests.Perf_Vector128Of<Single>.AbsBenchmark |
31.45 |
2.83 |
-91 |
| System.Runtime.Intrinsics.Tests.Perf_Vector128Of<UInt16>.LessThanOrEqualBenchmark |
31.46 |
2.97 |
-90.56 |
| System.Runtime.Intrinsics.Tests.Perf_Vector128Of<UInt16>.NegateBenchmark |
27.08 |
2.58 |
-90.47 |
| System.Runtime.Intrinsics.Tests.Perf_Vector128Int.SubtractBenchmark |
29.47 |
2.86 |
-90.3 |
| System.Runtime.Intrinsics.Tests.Perf_Vector128Of<Int16>.LessThanOrEqualBenchmark |
31.44 |
3.06 |
-90.27 |
| System.Runtime.Intrinsics.Tests.Perf_Vector128Float.InequalityOperatorBenchmark |
3.83 |
0.38 |
-90.08 |
| System.Runtime.Intrinsics.Tests.Perf_Vector128Float.LessThanBenchmark |
27.41 |
2.73 |
-90.04 |
| System.Runtime.Intrinsics.Tests.Perf_Vector128Of<Single>.GreaterThanOrEqualBenchmark |
28.1 |
2.82 |
-89.96 |
| System.Runtime.Intrinsics.Tests.Perf_Vector128Of<Single>.MaxBenchmark |
28.26 |
2.84 |
-89.95 |
| System.Runtime.Intrinsics.Tests.Perf_Vector128Float.MinBenchmark |
28.28 |
2.85 |
-89.92 |
| System.Runtime.Intrinsics.Tests.Perf_Vector128Float.EqualsStaticBenchmark |
27.34 |
2.76 |
-89.9 |
| System.Runtime.Intrinsics.Tests.Perf_Vector128Of<Int16>.GreaterThanAnyBenchmark |
3.22 |
0.33 |
-89.75 |
| System.Runtime.Intrinsics.Tests.Perf_Vector128Of<Single>.EqualsStaticBenchmark |
27.22 |
2.85 |
-89.53 |
| System.Runtime.Intrinsics.Tests.Perf_Vector128Of<Int16>.NegateBenchmark |
27.13 |
3.01 |
-88.91 |
| System.Runtime.Intrinsics.Tests.Perf_Vector128Of<Single>.AddBenchmark |
25.04 |
2.82 |
-88.74 |
| System.Runtime.Intrinsics.Tests.Perf_Vector128Of<Single>.EqualityOperatorBenchmark |
3.77 |
0.43 |
-88.59 |
| System.Runtime.Intrinsics.Tests.Perf_Vector128Float.MultiplyBenchmark |
25.15 |
2.87 |
-88.59 |
| System.Runtime.Intrinsics.Tests.Perf_Vector128Float.AddOperatorBenchmark |
25.17 |
2.88 |
-88.56 |
| System.Runtime.Intrinsics.Tests.Perf_Vector128Of<Single>.MultiplyBenchmark |
25.06 |
2.87 |
-88.55 |
| System.Runtime.Intrinsics.Tests.Perf_Vector128Of<Int32>.InequalityOperatorBenchmark |
3.32 |
0.38 |
-88.55 |
| System.Runtime.Intrinsics.Tests.Perf_Vector128Of<Double>.InequalityOperatorBenchmark |
3.63 |
0.42 |
-88.43 |
| System.Runtime.Intrinsics.Tests.Perf_Vector128Of<Single>.InequalityOperatorBenchmark |
3.71 |
0.43 |
-88.41 |
| System.Runtime.Intrinsics.Tests.Perf_Vector128Of<Int32>.MinBenchmark |
23.37 |
2.85 |
-87.8 |
| System.Runtime.Intrinsics.Tests.Perf_Vector128Int.LessThanOrEqualBenchmark |
23.16 |
2.89 |
-87.52 |
| System.Runtime.Intrinsics.Tests.Perf_Vector128Of<Int32>.EqualsStaticBenchmark |
22.52 |
2.84 |
-87.39 |
| System.Runtime.Intrinsics.Tests.Perf_Vector128Of<Int32>.LessThanBenchmark |
22.49 |
2.87 |
-87.24 |
| System.Runtime.Intrinsics.Tests.Perf_Vector128.ConvertFloatToIntBenchmark |
20.35 |
2.61 |
-87.17 |
| System.Runtime.Intrinsics.Tests.Perf_Vector128Int.GreaterThanOrEqualBenchmark |
22.99 |
2.95 |
-87.17 |
| System.Runtime.Intrinsics.Tests.Perf_Vector128Of<UInt32>.InequalityOperatorBenchmark |
3.19 |
0.41 |
-87.15 |
| System.Runtime.Intrinsics.Tests.Perf_Vector128Int.AddBenchmark |
21 |
2.71 |
-87.1 |
| System.Runtime.Intrinsics.Tests.Perf_Vector128Of<UInt32>.LessThanBenchmark |
22.6 |
2.98 |
-86.81 |
| System.Runtime.Intrinsics.Tests.Perf_Vector128Of<UInt32>.EqualsBenchmark |
6.17 |
0.82 |
-86.71 |
| System.Runtime.Intrinsics.Tests.Perf_Vector128Int.UnaryNegateOperatorBenchmark |
20.35 |
2.75 |
-86.49 |
| System.Runtime.Intrinsics.Tests.Perf_Vector128Of<UInt32>.AddOperatorBenchmark |
20.85 |
2.84 |
-86.38 |
| System.Runtime.Intrinsics.Tests.Perf_Vector128Of<Byte>.LessThanAllBenchmark |
2.93 |
0.41 |
-86.01 |
| System.Runtime.Intrinsics.Tests.Perf_Vector128Of<UInt32>.EqualsStaticBenchmark |
22.64 |
3.17 |
-86 |
| System.Runtime.Intrinsics.Tests.Perf_Vector128Of<Double>.SumBenchmark |
2.9 |
0.42 |
-85.52 |
| System.Runtime.Intrinsics.Tests.Perf_Vector128Of<Int32>.AddOperatorBenchmark |
20.98 |
3.07 |
-85.37 |
| System.Runtime.Intrinsics.Tests.Perf_Vector128Of<Int32>.EqualsBenchmark |
5.89 |
0.89 |
-84.89 |
| System.Runtime.Intrinsics.Tests.Perf_Vector128Of<UInt16>.GreaterThanAnyBenchmark |
3.2 |
0.53 |
-83.44 |
| System.Runtime.Intrinsics.Tests.Perf_Vector128Of<Byte>.GreaterThanAnyBenchmark |
3.27 |
0.56 |
-82.87 |
| System.Runtime.Intrinsics.Tests.Perf_Vector128Of<Int64>.BitwiseAndOperatorBenchmark |
10.94 |
2.25 |
-79.43 |
| System.Runtime.Intrinsics.Tests.Perf_Vector128Of<Double>.GreaterThanOrEqualBenchmark |
15.03 |
3.11 |
-79.31 |
| System.Runtime.Intrinsics.Tests.Perf_Vector128Of<Double>.EqualsStaticBenchmark |
14.49 |
3.04 |
-79.02 |
| System.Runtime.Intrinsics.Tests.Perf_Vector128Of<Double>.MaxBenchmark |
14.73 |
3.1 |
-78.95 |
| System.Runtime.Intrinsics.Tests.Perf_Vector128Of<UInt64>.GreaterThanOrEqualBenchmark |
13.44 |
2.95 |
-78.05 |
| System.Runtime.Intrinsics.Tests.Perf_Vector128Of<Double>.MultiplyBenchmark |
12.8 |
2.87 |
-77.58 |
| System.Runtime.Intrinsics.Tests.Perf_Vector128Of<Int64>.GreaterThanOrEqualBenchmark |
13.45 |
3.02 |
-77.55 |
| System.Runtime.Intrinsics.Tests.Perf_Vector128.FloorDoubleBenchmark |
12.04 |
2.72 |
-77.41 |
| System.Runtime.Intrinsics.Tests.Perf_Vector128Of<Int64>.LessThanOrEqualBenchmark |
13.41 |
3.03 |
-77.4 |
| System.Runtime.Intrinsics.Tests.Perf_Vector128Of<Int64>.SubtractBenchmark |
12.4 |
2.81 |
-77.34 |
| System.Runtime.Intrinsics.Tests.Perf_Vector128Of<UInt64>.UnaryNegateOperatorBenchmark |
11.93 |
2.78 |
-76.7 |
| System.Runtime.Intrinsics.Tests.Perf_Vector128Of<Int64>.UnaryNegateOperatorBenchmark |
11.9 |
2.81 |
-76.39 |
| System.Runtime.Intrinsics.Tests.Perf_Vector128Of<Double>.AddBenchmark |
12.8 |
3.05 |
-76.17 |
| System.Runtime.Intrinsics.Tests.Perf_Vector128Of<UInt64>.LessThanOrEqualBenchmark |
13.9 |
3.41 |
-75.47 |
| System.Runtime.Intrinsics.Tests.Perf_Vector128Of<Int64>.AddBenchmark |
12.59 |
3.1 |
-75.38 |
| System.Runtime.Intrinsics.Tests.Perf_Vector128Of<UInt64>.AddBenchmark |
12.44 |
3.1 |
-75.08 |
| System.Runtime.Intrinsics.Tests.Perf_Vector128Of<Double>.AbsBenchmark |
11.29 |
2.82 |
-75.02 |
| System.Runtime.Intrinsics.Tests.Perf_Vector128Int.XorBenchmark |
11.12 |
2.8 |
-74.82 |
| System.Runtime.Intrinsics.Tests.Perf_Vector128Of<UInt64>.SubtractBenchmark |
12.59 |
3.18 |
-74.74 |
| System.Runtime.Intrinsics.Tests.Perf_Vector128Float.AndNotBenchmark |
11.14 |
2.83 |
-74.6 |
| System.Runtime.Intrinsics.Tests.Perf_Vector128Int.BitwiseAndOperatorBenchmark |
11.01 |
2.83 |
-74.3 |
| System.Runtime.Intrinsics.Tests.Perf_Vector128Of<Int32>.AndNotBenchmark |
10.92 |
2.81 |
-74.27 |
| System.Runtime.Intrinsics.Tests.Perf_Vector128Of<UInt64>.BitwiseAndOperatorBenchmark |
10.87 |
2.82 |
-74.06 |
| System.Runtime.Intrinsics.Tests.Perf_Vector128Of<UInt16>.ConditionalSelectBenchmark |
12.03 |
3.13 |
-73.98 |
| System.Runtime.Intrinsics.Tests.Perf_Vector128Of<Int32>.ExclusiveOrOperatorBenchmark |
10.99 |
2.89 |
-73.7 |
| System.Runtime.Intrinsics.Tests.Perf_Vector128Of<Int16>.ConditionalSelectBenchmark |
12.07 |
3.18 |
-73.65 |
| System.Runtime.Intrinsics.Tests.Perf_Vector128Float.ExclusiveOrOperatorBenchmark |
11.63 |
3.1 |
-73.34 |
| System.Runtime.Intrinsics.Tests.Perf_Vector128Of<UInt32>.AndNotBenchmark |
11.07 |
3.04 |
-72.54 |
| System.Runtime.Intrinsics.Tests.Perf_Vector128Of<Byte>.AndNotBenchmark |
11.01 |
3.05 |
-72.3 |
| System.Runtime.Intrinsics.Tests.Perf_Vector128Of<UInt16>.BitwiseAndOperatorBenchmark |
10.98 |
3.06 |
-72.13 |
| System.Runtime.Intrinsics.Tests.Perf_Vector128Of<UInt64>.XorBenchmark |
10.87 |
3.04 |
-72.03 |
| System.Runtime.Intrinsics.Tests.Perf_Vector128Of<Int64>.XorBenchmark |
10.86 |
3.04 |
-72.01 |
| System.Runtime.Intrinsics.Tests.Perf_Vector128Of<Double>.XorBenchmark |
10.89 |
3.1 |
-71.53 |
| System.Runtime.Intrinsics.Tests.Perf_Vector128Of<SByte>.AndNotBenchmark |
10.95 |
3.17 |
-71.05 |
| System.Runtime.Intrinsics.Tests.Perf_Vector128Of<Int16>.BitwiseAndOperatorBenchmark |
10.9 |
3.16 |
-71.01 |
| System.Runtime.Intrinsics.Tests.Perf_Vector128Of<Single>.XorBenchmark |
10.87 |
3.16 |
-70.93 |
| System.Runtime.Intrinsics.Tests.Perf_Vector128Of<UInt32>.ExclusiveOrOperatorBenchmark |
10.91 |
3.19 |
-70.76 |
| System.IO.Tests.StringReaderReadToEndTests.ReadToEnd(LineLengthRange: [ 1, 8]) |
138.96 |
50.75 |
-63.48 |
| System.IO.Tests.StringReaderReadToEndTests.ReadToEnd(LineLengthRange: [ 9, 32]) |
136.74 |
50.4 |
-63.14 |
| System.Collections.TryGetValueFalse<Int32, Int32>.FrozenDictionary(Size: 512) |
10605.65 |
4494.55 |
-57.62 |
| System.Reflection.Invoke.Property_Set_class |
304.01 |
153.83 |
-49.4 |
| System.Threading.Tests.Perf_CancellationToken.CreateLinkedTokenSource1 |
181.74 |
93.54 |
-48.53 |
| Exceptions.Handling.CatchAndThrowOtherDeep(kind: Software) |
30045.73 |
16013.38 |
-46.7 |
| System.Collections.CtorFromCollection<Int32>.FrozenDictionaryOptimized(Size: 512) |
93350.63 |
50683.63 |
-45.71 |
| System.Memory.ReadOnlyMemory<Byte>.Pin(Size: 512) |
190.27 |
103.68 |
-45.51 |
| System.Reflection.Invoke.Property_Set_int |
296.31 |
164.67 |
-44.43 |
| Exceptions.Handling.ThrowAndCatch(kind: Software) |
2825.03 |
1578.24 |
-44.13 |
| System.Tests.Perf_Array.ArrayAssign3D |
15125405.33 |
8477023.28 |
-43.96 |
| System.Numerics.Tests.Perf_BigInteger.Subtract(arguments: 16,16 bits) |
31.39 |
17.61 |
-43.9 |
| Exceptions.Handling.ThrowAndCatchFinally(kind: Software) |
2824.36 |
1594.45 |
-43.55 |
| Exceptions.Handling.TryAndFinallyDeep(kind: Software) |
10139.17 |
6167.95 |
-39.17 |
| System.Threading.Tests.Perf_Timer.LongScheduleAndDispose |
476.55 |
292.64 |
-38.59 |
| PerfLabTests.CastingPerf.AssignArrayElementByVariance |
213.56 |
132.06 |
-38.16 |
| System.Tests.Perf_Enum.GetValues_Generic |
1817.58 |
1125.43 |
-38.08 |
| System.Collections.CtorFromCollectionNonGeneric<Int32>.Stack(Size: 512) |
102328.3 |
64125.31 |
-37.33 |
| Exceptions.Handling.ThrowAndCatch(kind: ReflectionSoftware) |
9369.86 |
5909.05 |
-36.94 |
| System.Threading.Tests.Perf_EventWaitHandle.Set_Reset |
264.98 |
175.21 |
-33.88 |
| System.Threading.Tests.Perf_CancellationToken.CreateLinkedTokenSource3 |
284.12 |
191.64 |
-32.55 |
| Exceptions.Handling.ThrowAndCatchDeepRecursive(kind: ReflectionHardware) |
19588.37 |
13241.34 |
-32.4 |
| System.Reflection.Attributes.GetCustomAttributesMethodOverrideHit |
1686.97 |
1148.26 |
-31.93 |
| Exceptions.Handling.ThrowAndCatchDeep(kind: Hardware) |
12504.53 |
8594.42 |
-31.27 |
| Exceptions.Handling.ThrowAndCatch_ManyCatchBlocks(kind: ReflectionHardware) |
13488.43 |
9297.79 |
-31.07 |
| System.Collections.Concurrent.IsEmpty<Int32>.Stack(Size: 0) |
0.34 |
0.24 |
-29.41 |
| System.Xml.Linq.Perf_XName.CreateElement |
151.64 |
109.4 |
-27.86 |
| Span.IndexerBench.Ref(length: 1024) |
1108.29 |
820.32 |
-25.98 |
| System.Tests.Perf_String.Replace_Char(text: yfesgj0sg1ijslnjsb3uofdz3tbzf6ysgblu3at20nfab2wei1kxfbvsbpzwhanjczcqa2psra3aacxb67qnwbnfp2tok6v0a58l, oldChar: 'b', newChar: '+') |
347.17 |
257.39 |
-25.86 |
| System.Reflection.Attributes.GetCustomAttributesMethodOverrideMiss |
1773.92 |
1358.04 |
-23.44 |
| System.Memory.Span<Byte>.LastIndexOfAnyValues(Size: 512) |
253.79 |
195.2 |
-23.09 |
| System.Reflection.Attributes.IsDefinedMethodBaseHitInherit |
650.27 |
502.85 |
-22.67 |
| System.Xml.Linq.Perf_XElement.CreateElementsWithNamespace |
401.32 |
320.54 |
-20.13 |
| System.Numerics.Tests.Perf_VectorOf<Int32>.InequalityOperatorBenchmark |
0.5 |
0.4 |
-20 |
| System.Reflection.Attributes.IsDefinedClassHit |
447.72 |
362.15 |
-19.11 |
| System.Reflection.Invoke.StaticMethod5_ByRefParams_int_string_struct_class_bool |
756.75 |
613.31 |
-18.95 |
| System.Tests.Perf_Enum.InterpolateIntoStringBuilder_NonFlags(value: Saturday) |
1049.86 |
852.74 |
-18.78 |
| System.Reflection.Attributes.GetCustomAttributesClassMissInherit |
3402.29 |
2781.1 |
-18.26 |
| System.Collections.Sort<IntStruct>.List(Size: 512) |
19465.89 |
16107.49 |
-17.25 |
| System.Text.RegularExpressions.Tests.Perf_Regex_Common.Ctor(Options: Compiled) |
72073.45 |
59746.26 |
-17.1 |
| System.Numerics.Tests.Perf_VectorOf<Byte>.SubtractBenchmark |
3.11 |
2.62 |
-15.76 |
| System.Tests.Perf_Enum.InterpolateIntoString(value: 32) |
1036.12 |
875.46 |
-15.51 |
| System.Numerics.Tests.Perf_VectorOf<Int16>.LessThanAnyBenchmark |
2.15 |
1.82 |
-15.35 |
| System.Collections.CreateAddAndClear<Int32>.List(Size: 512) |
2561.19 |
2193.96 |
-14.34 |
| System.Collections.CtorFromCollection<String>.Stack(Size: 512) |
521.71 |
448.42 |
-14.05 |
| System.Numerics.Tests.Perf_VectorOf<UInt32>.DivisionOperatorBenchmark |
16.1 |
14.02 |
-12.92 |
| PerfLabTests.LowLevelPerf.GenericGenericMethod |
174401.16 |
152339.17 |
-12.65 |
| System.Reflection.Invoke.Ctor0_ActivatorCreateInstance_NoParams |
124.41 |
108.7 |
-12.63 |
| System.Numerics.Tests.Perf_VectorOf<UInt16>.AbsBenchmark |
3.81 |
3.33 |
-12.6 |
| System.Numerics.Tests.Perf_VectorOf<UInt16>.XorBenchmark |
3.13 |
2.74 |
-12.46 |
| System.Numerics.Tests.Perf_VectorOf<Int64>.GreaterThanOrEqualAllBenchmark |
2.36 |
2.07 |
-12.29 |
| PerfLabTests.GetMember.GetField |
3694839.28 |
3251814.88 |
-11.99 |
| System.Numerics.Tests.Perf_VectorOf<UInt32>.SubtractBenchmark |
3.13 |
2.76 |
-11.82 |
| System.Numerics.Tests.Perf_VectorOf<UInt64>.GreaterThanAllBenchmark |
2.72 |
2.4 |
-11.76 |
| System.Linq.Tests.Perf_Enumerable.EmptyTakeSelectToArray |
30.57 |
27.05 |
-11.51 |
| StoreBlock.AnyLocation.CopyBlock16 |
1.13 |
1 |
-11.5 |
| System.Numerics.Tests.Perf_VectorOf<Double>.UnaryNegateOperatorBenchmark |
2.84 |
2.52 |
-11.27 |
| System.Buffers.Text.Tests.Base64EncodeDecodeInPlaceTests.Base64DecodeInPlace(NumberOfBytes: 200000000) |
222140428.54 |
198327109.86 |
-10.72 |
| System.Collections.CtorFromCollectionNonGeneric<String>.ArrayList(Size: 512) |
993.62 |
887.85 |
-10.64 |
| System.Collections.IterateForEachNonGeneric<String>.Stack(Size: 512) |
3047.65 |
2742.33 |
-10.02 |
| System.Collections.TryGetValueTrue<Int32, Int32>.SortedList(Size: 512) |
40917.35 |
36891.24 |
-9.84 |
| System.Numerics.Tests.Perf_VectorOf<UInt64>.BitwiseAndOperatorBenchmark |
3.17 |
2.87 |
-9.46 |
| System.Collections.IterateForEach<String>.ImmutableArray(Size: 512) |
1920.33 |
1739.57 |
-9.41 |
| System.Collections.TryGetValueFalse<String, String>.ConcurrentDictionary(Size: 512) |
13862.87 |
12560.99 |
-9.39 |
| System.Numerics.Tests.Perf_VectorOf<SByte>.BitwiseOrOperatorBenchmark |
2.88 |
2.61 |
-9.38 |
| System.Tests.Perf_Uri.PathAndQuery |
6.84 |
6.2 |
-9.36 |
| GuardedDevirtualization.TwoClassVirtual.Call(testInput: pB = 0.70) |
4.5 |
4.08 |
-9.33 |
| System.Runtime.Intrinsics.Tests.Perf_Vector128Of<UInt16>.DotBenchmark |
14.2 |
12.88 |
-9.3 |
| System.Linq.Tests.Perf_Enumerable.SelectToArray(input: IList) |
524.92 |
477.74 |
-8.99 |
| System.Numerics.Tests.Perf_VectorOf<UInt16>.MinBenchmark |
27.19 |
24.77 |
-8.9 |
| GuardedDevirtualization.TwoClassVirtual.Call(testInput: pB = 0.00) |
1.69 |
1.54 |
-8.88 |
| GuardedDevirtualization.ThreeClassVirtual.Call(testInput: pB=0.33 pD=0.00) |
4.99 |
4.55 |
-8.82 |
| System.Numerics.Tests.Perf_VectorOf<Int16>.GreaterThanBenchmark |
25.74 |
23.53 |
-8.59 |
| System.Collections.CtorFromCollection<String>.ImmutableQueue(Size: 512) |
6900.92 |
6311.06 |
-8.55 |
| System.IO.Tests.StringReaderReadLineTests.ReadLine(LineLengthRange: [ 129, 1024]) |
37927.65 |
34707.78 |
-8.49 |
| System.Collections.CtorFromCollection<String>.Queue(Size: 512) |
523.86 |
479.62 |
-8.45 |
| System.Numerics.Tests.Perf_VectorOf<Double>.DivideBenchmark |
2.86 |
2.62 |
-8.39 |
| GuardedDevirtualization.ThreeClassInterface.Call(testInput: pB=0.00 pD=0.00) |
1.68 |
1.54 |
-8.33 |
| XmlDocumentTests.XmlNodeTests.Perf_XmlNode.GetAttributes |
2.29 |
2.11 |
-7.86 |
| System.Numerics.Tests.Perf_VectorOf<Int16>.AddOperatorBenchmark |
3.11 |
2.87 |
-7.72 |
| System.Numerics.Tests.Perf_VectorOf<Int32>.ExclusiveOrOperatorBenchmark |
2.8 |
2.59 |
-7.5 |
| System.Linq.Tests.Perf_Enumerable.Distinct(input: IEnumerable) |
4067.32 |
3765.92 |
-7.41 |
| Microsoft.Extensions.Logging.ScopesOverheadBenchmark.FilteredByLevel(HasISupportLoggingScopeLogger: True, CaptureScopes: True) |
10.02 |
9.3 |
-7.19 |
| System.Collections.Tests.Perf_PriorityQueue<Int32, Int32>.K_Max_Elements(Size: 100) |
1453.26 |
1350.38 |
-7.08 |
| Microsoft.Extensions.Logging.LoggingOverhead.NoArguments_DefineMessage_FilteredByLevel |
10.47 |
9.73 |
-7.07 |
| System.Linq.Tests.Perf_Enumerable.Aggregate_Seed(input: IEnumerable) |
697.36 |
648.97 |
-6.94 |
| System.MathBenchmarks.Single.LogP1 |
52250.09 |
48645.44 |
-6.9 |
| System.Linq.Tests.Perf_Enumerable.WhereAny_LastElementMatches(input: List) |
559.77 |
521.72 |
-6.8 |
| System.Net.Primitives.Tests.CredentialCacheTests.GetCredential_HostPort(host: notfound, hostPortCount: 0) |
41.9 |
39.07 |
-6.75 |
| System.Text.RegularExpressions.Tests.Perf_Regex_Common.IP_IsNotMatch(Options: None) |
1222.22 |
1140.58 |
-6.68 |
| System.Collections.IterateForEachNonGeneric<Int32>.Queue(Size: 512) |
4125.96 |
3852.93 |
-6.62 |
| System.MathBenchmarks.Double.Cos |
75351.52 |
70427.23 |
-6.54 |
| System.Collections.CtorDefaultSize<String>.ConcurrentStack |
8.5 |
7.98 |
-6.12 |
| System.Numerics.Tests.Perf_VectorOf<Byte>.EqualsAnyBenchmark |
24.86 |
23.38 |
-5.95 |
| System.Buffers.Text.Tests.Utf8FormatterTests.FormatterUInt64(value: 12345) |
50.16 |
47.21 |
-5.88 |
| ByteMark.BenchAssignJagged |
1597136387 |
1505789545 |
-5.72 |
| Struct.SpanWrapper.WrapperSum |
19230.42 |
18186.31 |
-5.43 |
| System.Tests.Perf_Guid.ParseExactD |
246.46 |
233.11 |
-5.42 |
| System.Tests.Perf_Int64.TryParseSpan(value: 9223372036854775807) |
86.93 |
82.27 |
-5.36 |
| System.Collections.CtorGivenSize<String>.SortedList(Size: 512) |
570.12 |
540.16 |
-5.26 |
| System.Numerics.Tests.Perf_VectorOf<Byte>.OneBenchmark |
2.72 |
2.58 |
-5.15 |
| System.ComponentModel.Tests.Perf_TypeDescriptorTests.GetConverter(typeToConvert: typeof(System.ComponentModel.Tests.ClassWithNoConverter)) |
254.51 |
241.62 |
-5.06 |
Description
This report provides an overview of the major performance improvements and regressions Mono AOT from Preview 5 to Preview 7. The purpose of this analysis is to identify any performance improvements and regressions between the two snapshots and mitigate the impact within the .NET 8 release. The regression in the performance of occurred on May 11th, 2023. To evaluate the extent of this regression, we will compare the Preview 4 snapshot from May 2nd, 2023, with the Preview 7 snapshot from July 19th, 2023.
The configuration used for the benchmarks is Mono AOT with LLVM on x64 ubuntu 18.04.
Regressions
A total of 156 microbenchmarks regressed more than 5% during the between May 2nd and July 19th, 2023. Some of them may be noise in measurements, so the analysis should be taken dubiously and readers are encouraged to examine benchmark reports for thorough analysis.
Here is a breakdown of the regressions grouped by libraries.
System.Text.**
Share UTF8 converters between coreclr and mono in #85558 regressed encoding microbenchmarks reported in #89242.
System.Tests.Perf.** and System.Perf.**
Changes in IUtf8SpanParsable on the primitive numeric types in #86875 regressed
.Parsemicrobenchmarks reported in #89243.System.Memory.Span.** and System.Memory.ReadOnly.**
There are several changes in #88101, #86655, and #85819 that introduced extra code and may have affected performance of microbenchmarks reported in #89247 and
#89250.
System.IO.**
StreamReader and Path microbenchmarks have regressed in #89249.
System.Collections.** and System.Buffers.**
BitArray and IterateFor microbenchmarks have regressed in #89251.
Microsoft.Extensions**
There are recent changes for debugger support #88960 or #88082, but it is unlikely they have caused the regressions reported in #89252.
Improvements
A total of 198 microbenchmarks improved more than 5% during the between May 2nd and July 19th, 2023.
Intrinsified Vector128 API's on Amd64 in #86272 improved about 100 microbenchmarks. Significantly improved performance are noticed in System.Threading and Exceptions.Handling microbenchmarks. Faster optimized creation of FrozenDirectory in #88093 improved a couple of microbemchmarks more than 50%. There are a number of microbenchmarks that have improved for up to 20%.