System.Numerics.Tests.Constructor defines two kinds of benchmarks: ConstructorBenchmark and SpanCastBenchmark. All the ConstructorBenchmark benchmarks have improved for 3.0. However, SpanCastBenchmark has regressed on AMD.
git clone https://github.com/dotnet/performance.git
cd performance
# if you don't have cli installed and want python script to download the latest cli for you
py .\scripts\benchmarks_ci.py -f netcoreapp2.2 netcoreapp3.0 --filter *SpanCastBenchmark*
# if you do
dotnet run -p .\src\benchmarks\micro\MicroBenchmarks.csproj -c Release -f netcoreapp2.2 --runtimes netcoreapp2.2 netcoreapp3.0 --filter *SpanCastBenchmark*
BenchmarkDotNet=v0.11.3.1003-nightly, OS=Windows 10.0.18362
AMD Ryzen 7 1800X, 1 CPU, 16 logical and 8 physical cores
Job-ZOELMG : .NET Core 2.2.6 (CoreCLR 4.6.27817.03, CoreFX 4.6.27818.02), 64bit RyuJIT
Job-PXOTIF : .NET Core 3.0.0-preview8-27919-09 (CoreCLR 4.700.19.36901, CoreFX 4.700.19.36905), 64bit RyuJIT
| Method | Mean 2.2 | Mean 3.0 |
|---------------------------- |----------:|---------:|
| SpanCastBenchmark_Byte | 0.6217 ns | 2.683 ns |
| SpanCastBenchmark_SByte | 0.7052 ns | 2.659 ns |
| SpanCastBenchmark_UInt16 | 0.5903 ns | 2.929 ns |
| SpanCastBenchmark_Int16 | 0.7791 ns | 2.930 ns |
| SpanCastBenchmark_UInt32 | 0.5929 ns | 2.931 ns |
| SpanCastBenchmark_Int32 | 0.7792 ns | 2.947 ns |
| SpanCastBenchmark_UInt64 | 0.7793 ns | 2.929 ns |
| SpanCastBenchmark_Int64 | 0.7793 ns | 2.930 ns |
| SpanCastBenchmark_Single | 0.5933 ns | 2.931 ns |
| SpanCastBenchmark_Double | 0.7880 ns | 2.878 ns |
| ConstructorBenchmark_Byte | 7.2329 ns | 2.657 ns |
| ConstructorBenchmark_SByte | 6.9651 ns | 2.658 ns |
| ConstructorBenchmark_UInt16 | 7.2337 ns | 2.659 ns |
| ConstructorBenchmark_Int16 | 7.2346 ns | 2.659 ns |
| ConstructorBenchmark_UInt32 | 6.9655 ns | 2.658 ns |
| ConstructorBenchmark_Int32 | 7.2319 ns | 2.663 ns |
| ConstructorBenchmark_UInt64 | 7.2346 ns | 2.659 ns |
| ConstructorBenchmark_Int64 | 7.2349 ns | 2.657 ns |
| ConstructorBenchmark_Single | 7.2335 ns | 2.660 ns |
| ConstructorBenchmark_Double | 7.2305 ns | 2.671 ns |
/cc @danmosemsft @tannergooding @AndyAyersMS @billwert @DrewScoggins
Results for more OSes and Hardware:
| conclusion | Base | Diff | Base/Diff | Modality | Operating System | Arch | Processor Name | Base Runtime | Diff Runtime |
| ---------- | ----:| ----:| ---------:| -------- | -------------------- | ----- | ------------------------------------------- | --------------- | --------------------------------- |
| Same | 0.82 | 0.98 | 0.84 | | ubuntu 18.04 | 64bit | Intel Xeon CPU E5-1650 v4 3.60GHz | .NET Core 2.2.6 | .NET Core 3.0.0-preview8-27919-09|
| Same | 0.82 | 0.85 | 0.97 | bimodal | Windows 10.0.18362 | 64bit | Intel Xeon CPU E5-1650 v4 3.60GHz | .NET Core 2.2.6 | .NET Core 3.0.0-preview8-27919-09|
| Slower | 1.14 | 1.70 | 0.67 | | ubuntu 16.04 | 64bit | Intel Xeon CPU E5-2673 v4 2.30GHz | .NET Core 2.2.6 | .NET Core 3.0.0-preview8-27919-01|
| Same | 1.34 | 1.61 | 0.83 | | ubuntu 18.04 | 64bit | Intel Xeon CPU E5-2673 v4 2.30GHz | .NET Core 2.2.6 | .NET Core 3.0.0-preview8-27919-01|
| Same | 0.97 | 1.24 | 0.79 | | macOS Mojave 10.14.5 | 64bit | Intel Core i7-5557U CPU 3.10GHz (Broadwell) | .NET Core 2.2.6 | .NET Core 3.0.0-preview8-27919-09|
| Slower | 0.94 | 1.36 | 0.69 | | Windows 10.0.18362 | 64bit | Intel Core i7-5557U CPU 3.10GHz (Broadwell) | .NET Core 2.2.6 | .NET Core 3.0.0-preview8-27919-09|
| Same | 0.70 | 0.74 | 0.94 | | Windows 10.0.18362 | 64bit | Intel Core i7-7700 CPU 3.60GHz (Kaby Lake) | .NET Core 2.2.6 | .NET Core 3.0.0-preview8-27919-09|
| Slower | 0.78 | 2.88 | 0.27 | | Windows 10.0.18362 | 64bit | AMD Ryzen 7 1800X | .NET Core 2.2.6 | .NET Core 3.0.0-preview8-27919-09|
| Slower | 5.76 | 6.43 | 0.90 | | Windows 10.0.18362 | 32bit | Intel Xeon CPU E5-1650 v4 3.60GHz | .NET Core 2.2.6 | .NET Core 3.0.0-preview8-27919-09|
| conclusion | Base | Diff | Base/Diff | Modality | Operating System | Arch | Processor Name | Base Runtime | Diff Runtime |
| ---------- | ----:| ----:| ---------:| -------- | -------------------- | ----- | ------------------------------------------- | --------------- | --------------------------------- |
| Same | 0.56 | 0.68 | 0.82 | | ubuntu 18.04 | 64bit | Intel Xeon CPU E5-1650 v4 3.60GHz | .NET Core 2.2.6 | .NET Core 3.0.0-preview8-27919-09|
| Same | 0.53 | 0.66 | 0.80 | | Windows 10.0.18362 | 64bit | Intel Xeon CPU E5-1650 v4 3.60GHz | .NET Core 2.2.6 | .NET Core 3.0.0-preview8-27919-09|
| Same | 0.91 | 1.02 | 0.89 | | ubuntu 16.04 | 64bit | Intel Xeon CPU E5-2673 v4 2.30GHz | .NET Core 2.2.6 | .NET Core 3.0.0-preview8-27919-01|
| Same | 0.91 | 1.07 | 0.85 | | ubuntu 18.04 | 64bit | Intel Xeon CPU E5-2673 v4 2.30GHz | .NET Core 2.2.6 | .NET Core 3.0.0-preview8-27919-01|
| Slower | 0.66 | 1.53 | 0.43 | | macOS Mojave 10.14.5 | 64bit | Intel Core i7-5557U CPU 3.10GHz (Broadwell) | .NET Core 2.2.6 | .NET Core 3.0.0-preview8-27919-09|
| Same | 0.66 | 0.72 | 0.92 | | Windows 10.0.18362 | 64bit | Intel Core i7-5557U CPU 3.10GHz (Broadwell) | .NET Core 2.2.6 | .NET Core 3.0.0-preview8-27919-09|
| Same | 0.42 | 0.58 | 0.72 | | Windows 10.0.18362 | 64bit | Intel Core i7-7700 CPU 3.60GHz (Kaby Lake) | .NET Core 2.2.6 | .NET Core 3.0.0-preview8-27919-09|
| Slower | 0.61 | 2.68 | 0.23 | bimodal | Windows 10.0.18362 | 64bit | AMD Ryzen 7 1800X | .NET Core 2.2.6 | .NET Core 3.0.0-preview8-27919-09|
| Same | 0.83 | 0.59 | 1.41 | | Windows 10.0.18362 | 32bit | Intel Xeon CPU E5-1650 v4 3.60GHz | .NET Core 2.2.6 | .NET Core 3.0.0-preview8-27919-09|
| conclusion | Base | Diff | Base/Diff | Modality | Operating System | Arch | Processor Name | Base Runtime | Diff Runtime |
| ---------- | ----:| ----:| ---------:| --------:| -------------------- | ----- | ------------------------------------------- | --------------- | --------------------------------- |
| Same | 0.83 | 0.97 | 0.86 | | ubuntu 18.04 | 64bit | Intel Xeon CPU E5-1650 v4 3.60GHz | .NET Core 2.2.6 | .NET Core 3.0.0-preview8-27919-09|
| Same | 0.77 | 0.88 | 0.88 | | Windows 10.0.18362 | 64bit | Intel Xeon CPU E5-1650 v4 3.60GHz | .NET Core 2.2.6 | .NET Core 3.0.0-preview8-27919-09|
| Slower | 1.31 | 1.70 | 0.77 | | ubuntu 16.04 | 64bit | Intel Xeon CPU E5-2673 v4 2.30GHz | .NET Core 2.2.6 | .NET Core 3.0.0-preview8-27919-01|
| Same | 1.37 | 1.58 | 0.87 | | ubuntu 18.04 | 64bit | Intel Xeon CPU E5-2673 v4 2.30GHz | .NET Core 2.2.6 | .NET Core 3.0.0-preview8-27919-01|
| Same | 0.96 | 1.23 | 0.78 | | macOS Mojave 10.14.5 | 64bit | Intel Core i7-5557U CPU 3.10GHz (Broadwell) | .NET Core 2.2.6 | .NET Core 3.0.0-preview8-27919-09|
| Same | 0.96 | 1.07 | 0.89 | | Windows 10.0.18362 | 64bit | Intel Core i7-5557U CPU 3.10GHz (Broadwell) | .NET Core 2.2.6 | .NET Core 3.0.0-preview8-27919-09|
| Same | 0.71 | 0.75 | 0.94 | | Windows 10.0.18362 | 64bit | Intel Core i7-7700 CPU 3.60GHz (Kaby Lake) | .NET Core 2.2.6 | .NET Core 3.0.0-preview8-27919-09|
| Slower | 0.59 | 2.93 | 0.20 | | Windows 10.0.18362 | 64bit | AMD Ryzen 7 1800X | .NET Core 2.2.6 | .NET Core 3.0.0-preview8-27919-09|
| Slower | 5.73 | 6.49 | 0.88 | | Windows 10.0.18362 | 32bit | Intel Xeon CPU E5-1650 v4 3.60GHz | .NET Core 2.2.6 | .NET Core 3.0.0-preview8-27919-09|
| conclusion | Base | Diff | Base/Diff | Modality | Operating System | Arch | Processor Name | Base Runtime | Diff Runtime |
| ---------- | ----:| ----:| ---------:| -------- | -------------------- | ----- | ------------------------------------------- | --------------- | --------------------------------- |
| Same | 0.55 | 0.69 | 0.80 | | ubuntu 18.04 | 64bit | Intel Xeon CPU E5-1650 v4 3.60GHz | .NET Core 2.2.6 | .NET Core 3.0.0-preview8-27919-09|
| Same | 0.73 | 0.63 | 1.16 | | Windows 10.0.18362 | 64bit | Intel Xeon CPU E5-1650 v4 3.60GHz | .NET Core 2.2.6 | .NET Core 3.0.0-preview8-27919-09|
| Same | 0.87 | 1.06 | 0.82 | bimodal | ubuntu 16.04 | 64bit | Intel Xeon CPU E5-2673 v4 2.30GHz | .NET Core 2.2.6 | .NET Core 3.0.0-preview8-27919-01|
| Same | 0.91 | 1.02 | 0.89 | | ubuntu 18.04 | 64bit | Intel Xeon CPU E5-2673 v4 2.30GHz | .NET Core 2.2.6 | .NET Core 3.0.0-preview8-27919-01|
| Same | 0.64 | 0.80 | 0.80 | | macOS Mojave 10.14.5 | 64bit | Intel Core i7-5557U CPU 3.10GHz (Broadwell) | .NET Core 2.2.6 | .NET Core 3.0.0-preview8-27919-09|
| Same | 0.69 | 0.81 | 0.85 | | Windows 10.0.18362 | 64bit | Intel Core i7-5557U CPU 3.10GHz (Broadwell) | .NET Core 2.2.6 | .NET Core 3.0.0-preview8-27919-09|
| Same | 0.41 | 0.54 | 0.77 | | Windows 10.0.18362 | 64bit | Intel Core i7-7700 CPU 3.60GHz (Kaby Lake) | .NET Core 2.2.6 | .NET Core 3.0.0-preview8-27919-09|
| Slower | 0.71 | 2.66 | 0.27 | several? | Windows 10.0.18362 | 64bit | AMD Ryzen 7 1800X | .NET Core 2.2.6 | .NET Core 3.0.0-preview8-27919-09|
| Same | 0.93 | 1.09 | 0.85 | | Windows 10.0.18362 | 32bit | Intel Xeon CPU E5-1650 v4 3.60GHz | .NET Core 2.2.6 | .NET Core 3.0.0-preview8-27919-09|
| conclusion | Base | Diff | Base/Diff | Modality | Operating System | Arch | Processor Name | Base Runtime | Diff Runtime |
| ---------- | ----:| ----:| ---------:| -------- | -------------------- | ----- | ------------------------------------------- | --------------- | --------------------------------- |
| Same | 0.83 | 0.96 | 0.86 | | ubuntu 18.04 | 64bit | Intel Xeon CPU E5-1650 v4 3.60GHz | .NET Core 2.2.6 | .NET Core 3.0.0-preview8-27919-09|
| Same | 0.80 | 0.84 | 0.95 | | Windows 10.0.18362 | 64bit | Intel Xeon CPU E5-1650 v4 3.60GHz | .NET Core 2.2.6 | .NET Core 3.0.0-preview8-27919-09|
| Same | 1.32 | 1.30 | 1.01 | bimodal | ubuntu 16.04 | 64bit | Intel Xeon CPU E5-2673 v4 2.30GHz | .NET Core 2.2.6 | .NET Core 3.0.0-preview8-27919-01|
| Same | 1.34 | 1.56 | 0.86 | | ubuntu 18.04 | 64bit | Intel Xeon CPU E5-2673 v4 2.30GHz | .NET Core 2.2.6 | .NET Core 3.0.0-preview8-27919-01|
| Same | 0.96 | 1.24 | 0.77 | | macOS Mojave 10.14.5 | 64bit | Intel Core i7-5557U CPU 3.10GHz (Broadwell) | .NET Core 2.2.6 | .NET Core 3.0.0-preview8-27919-09|
| Same | 0.95 | 1.08 | 0.88 | | Windows 10.0.18362 | 64bit | Intel Core i7-5557U CPU 3.10GHz (Broadwell) | .NET Core 2.2.6 | .NET Core 3.0.0-preview8-27919-09|
| Same | 0.71 | 0.74 | 0.96 | | Windows 10.0.18362 | 64bit | Intel Core i7-7700 CPU 3.60GHz (Kaby Lake) | .NET Core 2.2.6 | .NET Core 3.0.0-preview8-27919-09|
| Slower | 0.78 | 2.93 | 0.27 | | Windows 10.0.18362 | 64bit | AMD Ryzen 7 1800X | .NET Core 2.2.6 | .NET Core 3.0.0-preview8-27919-09|
| Slower | 6.07 | 6.45 | 0.94 | | Windows 10.0.18362 | 32bit | Intel Xeon CPU E5-1650 v4 3.60GHz | .NET Core 2.2.6 | .NET Core 3.0.0-preview8-27919-09|
| conclusion | Base | Diff | Base/Diff | Modality | Operating System | Arch | Processor Name | Base Runtime | Diff Runtime |
| ---------- | ----:| ----:| ---------:| -------- | -------------------- | ----- | ------------------------------------------- | --------------- | --------------------------------- |
| Same | 0.80 | 0.73 | 1.11 | | ubuntu 18.04 | 64bit | Intel Xeon CPU E5-1650 v4 3.60GHz | .NET Core 2.2.6 | .NET Core 3.0.0-preview8-27919-09|
| Same | 0.76 | 0.93 | 0.82 | | Windows 10.0.18362 | 64bit | Intel Xeon CPU E5-1650 v4 3.60GHz | .NET Core 2.2.6 | .NET Core 3.0.0-preview8-27919-09|
| Same | 1.31 | 1.64 | 0.80 | several? | ubuntu 16.04 | 64bit | Intel Xeon CPU E5-2673 v4 2.30GHz | .NET Core 2.2.6 | .NET Core 3.0.0-preview8-27919-01|
| Same | 1.33 | 1.33 | 1.00 | | ubuntu 18.04 | 64bit | Intel Xeon CPU E5-2673 v4 2.30GHz | .NET Core 2.2.6 | .NET Core 3.0.0-preview8-27919-01|
| Same | 0.94 | 1.14 | 0.82 | | macOS Mojave 10.14.5 | 64bit | Intel Core i7-5557U CPU 3.10GHz (Broadwell) | .NET Core 2.2.6 | .NET Core 3.0.0-preview8-27919-09|
| Same | 0.94 | 1.03 | 0.91 | | Windows 10.0.18362 | 64bit | Intel Core i7-5557U CPU 3.10GHz (Broadwell) | .NET Core 2.2.6 | .NET Core 3.0.0-preview8-27919-09|
| Same | 0.69 | 0.64 | 1.08 | | Windows 10.0.18362 | 64bit | Intel Core i7-7700 CPU 3.60GHz (Kaby Lake) | .NET Core 2.2.6 | .NET Core 3.0.0-preview8-27919-09|
| Slower | 0.59 | 2.93 | 0.20 | | Windows 10.0.18362 | 64bit | AMD Ryzen 7 1800X | .NET Core 2.2.6 | .NET Core 3.0.0-preview8-27919-09|
| Slower | 5.77 | 6.90 | 0.84 | | Windows 10.0.18362 | 32bit | Intel Xeon CPU E5-1650 v4 3.60GHz | .NET Core 2.2.6 | .NET Core 3.0.0-preview8-27919-09|
| conclusion | Base | Diff | Base/Diff | Modality | Operating System | Arch | Processor Name | Base Runtime | Diff Runtime |
| ---------- | ----:| ----:| ---------:| -------- | -------------------- | ----- | ------------------------------------------- | --------------- | --------------------------------- |
| Same | 0.82 | 1.06 | 0.78 | | ubuntu 18.04 | 64bit | Intel Xeon CPU E5-1650 v4 3.60GHz | .NET Core 2.2.6 | .NET Core 3.0.0-preview8-27919-09|
| Same | 0.81 | 0.89 | 0.92 | | Windows 10.0.18362 | 64bit | Intel Xeon CPU E5-1650 v4 3.60GHz | .NET Core 2.2.6 | .NET Core 3.0.0-preview8-27919-09|
| Same | 1.27 | 1.57 | 0.81 | bimodal | ubuntu 16.04 | 64bit | Intel Xeon CPU E5-2673 v4 2.30GHz | .NET Core 2.2.6 | .NET Core 3.0.0-preview8-27919-01|
| Same | 1.37 | 1.29 | 1.06 | | ubuntu 18.04 | 64bit | Intel Xeon CPU E5-2673 v4 2.30GHz | .NET Core 2.2.6 | .NET Core 3.0.0-preview8-27919-01|
| Same | 0.97 | 1.14 | 0.85 | several? | macOS Mojave 10.14.5 | 64bit | Intel Core i7-5557U CPU 3.10GHz (Broadwell) | .NET Core 2.2.6 | .NET Core 3.0.0-preview8-27919-09|
| Same | 0.95 | 1.06 | 0.90 | | Windows 10.0.18362 | 64bit | Intel Core i7-5557U CPU 3.10GHz (Broadwell) | .NET Core 2.2.6 | .NET Core 3.0.0-preview8-27919-09|
| Same | 0.71 | 0.68 | 1.04 | | Windows 10.0.18362 | 64bit | Intel Core i7-7700 CPU 3.60GHz (Kaby Lake) | .NET Core 2.2.6 | .NET Core 3.0.0-preview8-27919-09|
| Slower | 0.78 | 2.95 | 0.26 | | Windows 10.0.18362 | 64bit | AMD Ryzen 7 1800X | .NET Core 2.2.6 | .NET Core 3.0.0-preview8-27919-09|
| Same | 6.35 | 6.58 | 0.96 | | Windows 10.0.18362 | 32bit | Intel Xeon CPU E5-1650 v4 3.60GHz | .NET Core 2.2.6 | .NET Core 3.0.0-preview8-27919-09|
| conclusion | Base | Diff | Base/Diff | Modality | Operating System | Arch | Processor Name | Base Runtime | Diff Runtime |
| ---------- | ----:| ----:| ---------:| -------- | -------------------- | ----- | ------------------------------------------- | --------------- | --------------------------------- |
| Same | 0.83 | 0.81 | 1.03 | | ubuntu 18.04 | 64bit | Intel Xeon CPU E5-1650 v4 3.60GHz | .NET Core 2.2.6 | .NET Core 3.0.0-preview8-27919-09|
| Same | 0.77 | 0.86 | 0.89 | | Windows 10.0.18362 | 64bit | Intel Xeon CPU E5-1650 v4 3.60GHz | .NET Core 2.2.6 | .NET Core 3.0.0-preview8-27919-09|
| Same | 1.29 | 1.51 | 0.86 | | ubuntu 16.04 | 64bit | Intel Xeon CPU E5-2673 v4 2.30GHz | .NET Core 2.2.6 | .NET Core 3.0.0-preview8-27919-01|
| Slower | 1.35 | 1.72 | 0.78 | | ubuntu 18.04 | 64bit | Intel Xeon CPU E5-2673 v4 2.30GHz | .NET Core 2.2.6 | .NET Core 3.0.0-preview8-27919-01|
| Same | 0.96 | 1.14 | 0.84 | | macOS Mojave 10.14.5 | 64bit | Intel Core i7-5557U CPU 3.10GHz (Broadwell) | .NET Core 2.2.6 | .NET Core 3.0.0-preview8-27919-09|
| Same | 0.97 | 0.75 | 1.30 | several? | Windows 10.0.18362 | 64bit | Intel Core i7-5557U CPU 3.10GHz (Broadwell) | .NET Core 2.2.6 | .NET Core 3.0.0-preview8-27919-09|
| Same | 0.79 | 0.65 | 1.22 | | Windows 10.0.18362 | 64bit | Intel Core i7-7700 CPU 3.60GHz (Kaby Lake) | .NET Core 2.2.6 | .NET Core 3.0.0-preview8-27919-09|
| Slower | 0.59 | 2.93 | 0.20 | | Windows 10.0.18362 | 64bit | AMD Ryzen 7 1800X | .NET Core 2.2.6 | .NET Core 3.0.0-preview8-27919-09|
| Slower | 5.72 | 6.85 | 0.83 | | Windows 10.0.18362 | 32bit | Intel Xeon CPU E5-1650 v4 3.60GHz | .NET Core 2.2.6 | .NET Core 3.0.0-preview8-27919-09|
| conclusion | Base | Diff | Base/Diff | Modality | Operating System | Arch | Processor Name | Base Runtime | Diff Runtime |
| ---------- | ----:| ----:| ---------:| -------- | -------------------- | ----- | ------------------------------------------- | --------------- | --------------------------------- |
| Same | 0.83 | 0.81 | 1.02 | | ubuntu 18.04 | 64bit | Intel Xeon CPU E5-1650 v4 3.60GHz | .NET Core 2.2.6 | .NET Core 3.0.0-preview8-27919-09|
| Same | 0.79 | 0.89 | 0.89 | | Windows 10.0.18362 | 64bit | Intel Xeon CPU E5-1650 v4 3.60GHz | .NET Core 2.2.6 | .NET Core 3.0.0-preview8-27919-09|
| Same | 1.30 | 1.56 | 0.83 | several? | ubuntu 16.04 | 64bit | Intel Xeon CPU E5-2673 v4 2.30GHz | .NET Core 2.2.6 | .NET Core 3.0.0-preview8-27919-01|
| Slower | 1.37 | 1.73 | 0.79 | | ubuntu 18.04 | 64bit | Intel Xeon CPU E5-2673 v4 2.30GHz | .NET Core 2.2.6 | .NET Core 3.0.0-preview8-27919-01|
| Same | 0.95 | 1.14 | 0.83 | several? | macOS Mojave 10.14.5 | 64bit | Intel Core i7-5557U CPU 3.10GHz (Broadwell) | .NET Core 2.2.6 | .NET Core 3.0.0-preview8-27919-09|
| Same | 0.94 | 0.73 | 1.29 | | Windows 10.0.18362 | 64bit | Intel Core i7-5557U CPU 3.10GHz (Broadwell) | .NET Core 2.2.6 | .NET Core 3.0.0-preview8-27919-09|
| Same | 0.70 | 0.50 | 1.42 | | Windows 10.0.18362 | 64bit | Intel Core i7-7700 CPU 3.60GHz (Kaby Lake) | .NET Core 2.2.6 | .NET Core 3.0.0-preview8-27919-09|
| Slower | 0.78 | 2.93 | 0.27 | | Windows 10.0.18362 | 64bit | AMD Ryzen 7 1800X | .NET Core 2.2.6 | .NET Core 3.0.0-preview8-27919-09|
| Slower | 5.75 | 6.85 | 0.84 | | Windows 10.0.18362 | 32bit | Intel Xeon CPU E5-1650 v4 3.60GHz | .NET Core 2.2.6 | .NET Core 3.0.0-preview8-27919-09|
| conclusion | Base | Diff | Base/Diff | Modality | Operating System | Arch | Processor Name | Base Runtime | Diff Runtime |
| ---------- | -----:| ----:| ---------:| --------:| -------------------- | ----- | ------------------------------------------- | --------------- | --------------------------------- |
| Same | 0.81 | 0.98 | 0.83 | | ubuntu 18.04 | 64bit | Intel Xeon CPU E5-1650 v4 3.60GHz | .NET Core 2.2.6 | .NET Core 3.0.0-preview8-27919-09|
| Same | 0.80 | 0.60 | 1.32 | | Windows 10.0.18362 | 64bit | Intel Xeon CPU E5-1650 v4 3.60GHz | .NET Core 2.2.6 | .NET Core 3.0.0-preview8-27919-09|
| Slower | 1.30 | 1.69 | 0.77 | | ubuntu 16.04 | 64bit | Intel Xeon CPU E5-2673 v4 2.30GHz | .NET Core 2.2.6 | .NET Core 3.0.0-preview8-27919-01|
| Same | 1.34 | 1.59 | 0.84 | | ubuntu 18.04 | 64bit | Intel Xeon CPU E5-2673 v4 2.30GHz | .NET Core 2.2.6 | .NET Core 3.0.0-preview8-27919-01|
| Same | 0.94 | 0.94 | 1.00 | | macOS Mojave 10.14.5 | 64bit | Intel Core i7-5557U CPU 3.10GHz (Broadwell) | .NET Core 2.2.6 | .NET Core 3.0.0-preview8-27919-09|
| Faster | 10.37 | 1.11 | 9.37 | | Windows 10.0.18362 | 64bit | Intel Core i7-5557U CPU 3.10GHz (Broadwell) | .NET Core 2.2.6 | .NET Core 3.0.0-preview8-27919-09|
| Same | 0.70 | 0.53 | 1.34 | | Windows 10.0.18362 | 64bit | Intel Core i7-7700 CPU 3.60GHz (Kaby Lake) | .NET Core 2.2.6 | .NET Core 3.0.0-preview8-27919-09|
| Slower | 0.78 | 2.93 | 0.27 | | Windows 10.0.18362 | 64bit | AMD Ryzen 7 1800X | .NET Core 2.2.6 | .NET Core 3.0.0-preview8-27919-09|
| Slower | 5.72 | 6.60 | 0.87 | | Windows 10.0.18362 | 32bit | Intel Xeon CPU E5-1650 v4 3.60GHz | .NET Core 2.2.6 | .NET Core 3.0.0-preview8-27919-09|
| conclusion | Base | Diff | Base/Diff | Modality | Operating System | Arch | Processor Name | Base Runtime | Diff Runtime |
| ---------- | -----:| -----:| ---------:| -------- | -------------------- | ----- | ------------------------------------------- | --------------- | --------------------------------- |
| Faster | 7.49 | 0.59 | 12.60 | | ubuntu 18.04 | 64bit | Intel Xeon CPU E5-1650 v4 3.60GHz | .NET Core 2.2.6 | .NET Core 3.0.0-preview8-27919-09|
| Faster | 3.43 | 0.66 | 5.22 | | Windows 10.0.18362 | 64bit | Intel Xeon CPU E5-1650 v4 3.60GHz | .NET Core 2.2.6 | .NET Core 3.0.0-preview8-27919-09|
| Faster | 11.72 | 1.25 | 9.37 | | ubuntu 16.04 | 64bit | Intel Xeon CPU E5-2673 v4 2.30GHz | .NET Core 2.2.6 | .NET Core 3.0.0-preview8-27919-01|
| Faster | 12.26 | 1.10 | 11.14 | several? | ubuntu 18.04 | 64bit | Intel Xeon CPU E5-2673 v4 2.30GHz | .NET Core 2.2.6 | .NET Core 3.0.0-preview8-27919-01|
| Slower | 9.37 | 12.08 | 0.78 | | macOS Mojave 10.14.5 | 64bit | Intel Core i7-5557U CPU 3.10GHz (Broadwell) | .NET Core 2.2.6 | .NET Core 3.0.0-preview8-27919-09|
| Faster | 3.62 | 0.73 | 5.00 | | Windows 10.0.18362 | 64bit | Intel Core i7-5557U CPU 3.10GHz (Broadwell) | .NET Core 2.2.6 | .NET Core 3.0.0-preview8-27919-09|
| Faster | 2.79 | 1.16 | 2.41 | several? | Windows 10.0.18362 | 64bit | Intel Core i7-7700 CPU 3.60GHz (Kaby Lake) | .NET Core 2.2.6 | .NET Core 3.0.0-preview8-27919-09|
| Faster | 7.23 | 2.66 | 2.72 | | Windows 10.0.18362 | 64bit | AMD Ryzen 7 1800X | .NET Core 2.2.6 | .NET Core 3.0.0-preview8-27919-09|
| Faster | 3.92 | 0.95 | 4.13 | | Windows 10.0.18362 | 32bit | Intel Xeon CPU E5-1650 v4 3.60GHz | .NET Core 2.2.6 | .NET Core 3.0.0-preview8-27919-09|
| conclusion | Base | Diff | Base/Diff | Modality | Operating System | Arch | Processor Name | Base Runtime | Diff Runtime |
| ---------- | -----:| ----:| ---------:| --------:| -------------------- | ----- | ------------------------------------------- | --------------- | --------------------------------- |
| Faster | 6.99 | 0.87 | 8.01 | | ubuntu 18.04 | 64bit | Intel Xeon CPU E5-1650 v4 3.60GHz | .NET Core 2.2.6 | .NET Core 3.0.0-preview8-27919-09|
| Faster | 3.02 | 0.58 | 5.25 | | Windows 10.0.18362 | 64bit | Intel Xeon CPU E5-1650 v4 3.60GHz | .NET Core 2.2.6 | .NET Core 3.0.0-preview8-27919-09|
| Faster | 11.06 | 1.01 | 10.97 | | ubuntu 16.04 | 64bit | Intel Xeon CPU E5-2673 v4 2.30GHz | .NET Core 2.2.6 | .NET Core 3.0.0-preview8-27919-01|
| Faster | 12.25 | 1.03 | 11.94 | | ubuntu 18.04 | 64bit | Intel Xeon CPU E5-2673 v4 2.30GHz | .NET Core 2.2.6 | .NET Core 3.0.0-preview8-27919-01|
| Faster | 9.38 | 0.80 | 11.70 | | macOS Mojave 10.14.5 | 64bit | Intel Core i7-5557U CPU 3.10GHz (Broadwell) | .NET Core 2.2.6 | .NET Core 3.0.0-preview8-27919-09|
| Faster | 4.10 | 0.77 | 5.33 | | Windows 10.0.18362 | 64bit | Intel Core i7-5557U CPU 3.10GHz (Broadwell) | .NET Core 2.2.6 | .NET Core 3.0.0-preview8-27919-09|
| Faster | 3.93 | 0.47 | 8.35 | | Windows 10.0.18362 | 64bit | Intel Core i7-7700 CPU 3.60GHz (Kaby Lake) | .NET Core 2.2.6 | .NET Core 3.0.0-preview8-27919-09|
| Faster | 7.23 | 2.66 | 2.72 | | Windows 10.0.18362 | 64bit | AMD Ryzen 7 1800X | .NET Core 2.2.6 | .NET Core 3.0.0-preview8-27919-09|
| Faster | 4.24 | 2.02 | 2.10 | | Windows 10.0.18362 | 32bit | Intel Xeon CPU E5-1650 v4 3.60GHz | .NET Core 2.2.6 | .NET Core 3.0.0-preview8-27919-09|
| conclusion | Base | Diff | Base/Diff | Modality | Operating System | Arch | Processor Name | Base Runtime | Diff Runtime |
| ---------- | -----:| ----:| ---------:| -------- | -------------------- | ----- | ------------------------------------------- | --------------- | --------------------------------- |
| Faster | 7.49 | 0.67 | 11.19 | | ubuntu 18.04 | 64bit | Intel Xeon CPU E5-1650 v4 3.60GHz | .NET Core 2.2.6 | .NET Core 3.0.0-preview8-27919-09|
| Faster | 3.02 | 0.59 | 5.13 | | Windows 10.0.18362 | 64bit | Intel Xeon CPU E5-1650 v4 3.60GHz | .NET Core 2.2.6 | .NET Core 3.0.0-preview8-27919-09|
| Faster | 11.06 | 0.94 | 11.83 | several? | ubuntu 16.04 | 64bit | Intel Xeon CPU E5-2673 v4 2.30GHz | .NET Core 2.2.6 | .NET Core 3.0.0-preview8-27919-01|
| Faster | 11.48 | 1.09 | 10.53 | several? | ubuntu 18.04 | 64bit | Intel Xeon CPU E5-2673 v4 2.30GHz | .NET Core 2.2.6 | .NET Core 3.0.0-preview8-27919-01|
| Faster | 9.38 | 0.78 | 11.95 | | macOS Mojave 10.14.5 | 64bit | Intel Core i7-5557U CPU 3.10GHz (Broadwell) | .NET Core 2.2.6 | .NET Core 3.0.0-preview8-27919-09|
| Faster | 3.63 | 0.99 | 3.67 | | Windows 10.0.18362 | 64bit | Intel Core i7-5557U CPU 3.10GHz (Broadwell) | .NET Core 2.2.6 | .NET Core 3.0.0-preview8-27919-09|
| Faster | 2.68 | 0.48 | 5.53 | | Windows 10.0.18362 | 64bit | Intel Core i7-7700 CPU 3.60GHz (Kaby Lake) | .NET Core 2.2.6 | .NET Core 3.0.0-preview8-27919-09|
| Faster | 7.23 | 2.66 | 2.72 | | Windows 10.0.18362 | 64bit | AMD Ryzen 7 1800X | .NET Core 2.2.6 | .NET Core 3.0.0-preview8-27919-09|
| Faster | 3.24 | 0.82 | 3.96 | | Windows 10.0.18362 | 32bit | Intel Xeon CPU E5-1650 v4 3.60GHz | .NET Core 2.2.6 | .NET Core 3.0.0-preview8-27919-09|
| conclusion | Base | Diff | Base/Diff | Modality | Operating System | Arch | Processor Name | Base Runtime | Diff Runtime |
| ---------- | -----:| ----:| ---------:| -------- | -------------------- | ----- | ------------------------------------------- | --------------- | --------------------------------- |
| Faster | 7.46 | 0.64 | 11.65 | | ubuntu 18.04 | 64bit | Intel Xeon CPU E5-1650 v4 3.60GHz | .NET Core 2.2.6 | .NET Core 3.0.0-preview8-27919-09|
| Faster | 3.43 | 0.63 | 5.45 | | Windows 10.0.18362 | 64bit | Intel Xeon CPU E5-1650 v4 3.60GHz | .NET Core 2.2.6 | .NET Core 3.0.0-preview8-27919-09|
| Faster | 11.94 | 1.05 | 11.34 | | ubuntu 16.04 | 64bit | Intel Xeon CPU E5-2673 v4 2.30GHz | .NET Core 2.2.6 | .NET Core 3.0.0-preview8-27919-01|
| Faster | 11.85 | 1.23 | 9.63 | several? | ubuntu 18.04 | 64bit | Intel Xeon CPU E5-2673 v4 2.30GHz | .NET Core 2.2.6 | .NET Core 3.0.0-preview8-27919-01|
| Faster | 9.38 | 0.81 | 11.59 | | macOS Mojave 10.14.5 | 64bit | Intel Core i7-5557U CPU 3.10GHz (Broadwell) | .NET Core 2.2.6 | .NET Core 3.0.0-preview8-27919-09|
| Faster | 3.28 | 0.79 | 4.12 | | Windows 10.0.18362 | 64bit | Intel Core i7-5557U CPU 3.10GHz (Broadwell) | .NET Core 2.2.6 | .NET Core 3.0.0-preview8-27919-09|
| Faster | 2.69 | 0.48 | 5.58 | | Windows 10.0.18362 | 64bit | Intel Core i7-7700 CPU 3.60GHz (Kaby Lake) | .NET Core 2.2.6 | .NET Core 3.0.0-preview8-27919-09|
| Faster | 6.96 | 2.66 | 2.62 | | Windows 10.0.18362 | 64bit | AMD Ryzen 7 1800X | .NET Core 2.2.6 | .NET Core 3.0.0-preview8-27919-09|
| Faster | 3.77 | 0.83 | 4.56 | | Windows 10.0.18362 | 32bit | Intel Xeon CPU E5-1650 v4 3.60GHz | .NET Core 2.2.6 | .NET Core 3.0.0-preview8-27919-09|
| conclusion | Base | Diff | Base/Diff | Modality | Operating System | Arch | Processor Name | Base Runtime | Diff Runtime |
| ---------- | -----:| ----:| ---------:| --------:| -------------------- | ----- | ------------------------------------------- | --------------- | --------------------------------- |
| Faster | 7.24 | 0.66 | 10.93 | | ubuntu 18.04 | 64bit | Intel Xeon CPU E5-1650 v4 3.60GHz | .NET Core 2.2.6 | .NET Core 3.0.0-preview8-27919-09|
| Faster | 3.04 | 0.60 | 5.03 | | Windows 10.0.18362 | 64bit | Intel Xeon CPU E5-1650 v4 3.60GHz | .NET Core 2.2.6 | .NET Core 3.0.0-preview8-27919-09|
| Faster | 11.12 | 1.05 | 10.64 | | ubuntu 16.04 | 64bit | Intel Xeon CPU E5-2673 v4 2.30GHz | .NET Core 2.2.6 | .NET Core 3.0.0-preview8-27919-01|
| Faster | 11.33 | 1.10 | 10.33 | | ubuntu 18.04 | 64bit | Intel Xeon CPU E5-2673 v4 2.30GHz | .NET Core 2.2.6 | .NET Core 3.0.0-preview8-27919-01|
| Faster | 9.38 | 0.81 | 11.63 | | macOS Mojave 10.14.5 | 64bit | Intel Core i7-5557U CPU 3.10GHz (Broadwell) | .NET Core 2.2.6 | .NET Core 3.0.0-preview8-27919-09|
| Faster | 4.07 | 0.77 | 5.30 | | Windows 10.0.18362 | 64bit | Intel Core i7-5557U CPU 3.10GHz (Broadwell) | .NET Core 2.2.6 | .NET Core 3.0.0-preview8-27919-09|
| Faster | 2.70 | 0.50 | 5.41 | | Windows 10.0.18362 | 64bit | Intel Core i7-7700 CPU 3.60GHz (Kaby Lake) | .NET Core 2.2.6 | .NET Core 3.0.0-preview8-27919-09|
| Faster | 6.96 | 2.66 | 2.62 | | Windows 10.0.18362 | 64bit | AMD Ryzen 7 1800X | .NET Core 2.2.6 | .NET Core 3.0.0-preview8-27919-09|
| Faster | 3.25 | 0.55 | 5.91 | | Windows 10.0.18362 | 32bit | Intel Xeon CPU E5-1650 v4 3.60GHz | .NET Core 2.2.6 | .NET Core 3.0.0-preview8-27919-09|
| conclusion | Base | Diff | Base/Diff | Modality | Operating System | Arch | Processor Name | Base Runtime | Diff Runtime |
| ---------- | -----:| ----:| ---------:| -------- | -------------------- | ----- | ------------------------------------------- | --------------- | --------------------------------- |
| Faster | 6.99 | 0.67 | 10.38 | | ubuntu 18.04 | 64bit | Intel Xeon CPU E5-1650 v4 3.60GHz | .NET Core 2.2.6 | .NET Core 3.0.0-preview8-27919-09|
| Faster | 3.44 | 0.59 | 5.84 | | Windows 10.0.18362 | 64bit | Intel Xeon CPU E5-1650 v4 3.60GHz | .NET Core 2.2.6 | .NET Core 3.0.0-preview8-27919-09|
| Faster | 11.52 | 0.92 | 12.51 | bimodal | ubuntu 16.04 | 64bit | Intel Xeon CPU E5-2673 v4 2.30GHz | .NET Core 2.2.6 | .NET Core 3.0.0-preview8-27919-01|
| Faster | 11.42 | 1.02 | 11.23 | | ubuntu 18.04 | 64bit | Intel Xeon CPU E5-2673 v4 2.30GHz | .NET Core 2.2.6 | .NET Core 3.0.0-preview8-27919-01|
| Faster | 9.38 | 0.81 | 11.52 | | macOS Mojave 10.14.5 | 64bit | Intel Core i7-5557U CPU 3.10GHz (Broadwell) | .NET Core 2.2.6 | .NET Core 3.0.0-preview8-27919-09|
| Faster | 3.62 | 0.77 | 4.68 | | Windows 10.0.18362 | 64bit | Intel Core i7-5557U CPU 3.10GHz (Broadwell) | .NET Core 2.2.6 | .NET Core 3.0.0-preview8-27919-09|
| Faster | 2.70 | 0.49 | 5.48 | | Windows 10.0.18362 | 64bit | Intel Core i7-7700 CPU 3.60GHz (Kaby Lake) | .NET Core 2.2.6 | .NET Core 3.0.0-preview8-27919-09|
| Faster | 7.23 | 2.66 | 2.72 | | Windows 10.0.18362 | 64bit | AMD Ryzen 7 1800X | .NET Core 2.2.6 | .NET Core 3.0.0-preview8-27919-09|
| Faster | 3.85 | 0.77 | 5.02 | bimodal | Windows 10.0.18362 | 32bit | Intel Xeon CPU E5-1650 v4 3.60GHz | .NET Core 2.2.6 | .NET Core 3.0.0-preview8-27919-09|
| conclusion | Base | Diff | Base/Diff | Modality | Operating System | Arch | Processor Name | Base Runtime | Diff Runtime |
| ---------- | -----:| ----:| ---------:| --------:| -------------------- | ----- | ------------------------------------------- | --------------- | --------------------------------- |
| Faster | 7.24 | 0.66 | 10.91 | | ubuntu 18.04 | 64bit | Intel Xeon CPU E5-1650 v4 3.60GHz | .NET Core 2.2.6 | .NET Core 3.0.0-preview8-27919-09|
| Faster | 2.79 | 0.60 | 4.64 | | Windows 10.0.18362 | 64bit | Intel Xeon CPU E5-1650 v4 3.60GHz | .NET Core 2.2.6 | .NET Core 3.0.0-preview8-27919-09|
| Faster | 11.85 | 1.02 | 11.59 | | ubuntu 16.04 | 64bit | Intel Xeon CPU E5-2673 v4 2.30GHz | .NET Core 2.2.6 | .NET Core 3.0.0-preview8-27919-01|
| Faster | 11.89 | 1.05 | 11.32 | | ubuntu 18.04 | 64bit | Intel Xeon CPU E5-2673 v4 2.30GHz | .NET Core 2.2.6 | .NET Core 3.0.0-preview8-27919-01|
| Faster | 9.38 | 0.79 | 11.84 | | macOS Mojave 10.14.5 | 64bit | Intel Core i7-5557U CPU 3.10GHz (Broadwell) | .NET Core 2.2.6 | .NET Core 3.0.0-preview8-27919-09|
| Faster | 3.62 | 0.77 | 4.68 | | Windows 10.0.18362 | 64bit | Intel Core i7-5557U CPU 3.10GHz (Broadwell) | .NET Core 2.2.6 | .NET Core 3.0.0-preview8-27919-09|
| Faster | 2.70 | 0.29 | 9.36 | | Windows 10.0.18362 | 64bit | Intel Core i7-7700 CPU 3.60GHz (Kaby Lake) | .NET Core 2.2.6 | .NET Core 3.0.0-preview8-27919-09|
| Faster | 7.23 | 2.66 | 2.72 | | Windows 10.0.18362 | 64bit | AMD Ryzen 7 1800X | .NET Core 2.2.6 | .NET Core 3.0.0-preview8-27919-09|
| Faster | 3.92 | 0.53 | 7.34 | | Windows 10.0.18362 | 32bit | Intel Xeon CPU E5-1650 v4 3.60GHz | .NET Core 2.2.6 | .NET Core 3.0.0-preview8-27919-09|
| conclusion | Base | Diff | Base/Diff | Modality | Operating System | Arch | Processor Name | Base Runtime | Diff Runtime |
| ---------- | -----:| ----:| ---------:| -------- | -------------------- | ----- | ------------------------------------------- | --------------- | --------------------------------- |
| Faster | 6.99 | 0.67 | 10.37 | | ubuntu 18.04 | 64bit | Intel Xeon CPU E5-1650 v4 3.60GHz | .NET Core 2.2.6 | .NET Core 3.0.0-preview8-27919-09|
| Faster | 3.46 | 0.62 | 5.60 | | Windows 10.0.18362 | 64bit | Intel Xeon CPU E5-1650 v4 3.60GHz | .NET Core 2.2.6 | .NET Core 3.0.0-preview8-27919-09|
| Faster | 11.89 | 0.96 | 12.35 | | ubuntu 16.04 | 64bit | Intel Xeon CPU E5-2673 v4 2.30GHz | .NET Core 2.2.6 | .NET Core 3.0.0-preview8-27919-01|
| Faster | 11.88 | 1.12 | 10.58 | several? | ubuntu 18.04 | 64bit | Intel Xeon CPU E5-2673 v4 2.30GHz | .NET Core 2.2.6 | .NET Core 3.0.0-preview8-27919-01|
| Faster | 9.38 | 0.78 | 11.97 | several? | macOS Mojave 10.14.5 | 64bit | Intel Core i7-5557U CPU 3.10GHz (Broadwell) | .NET Core 2.2.6 | .NET Core 3.0.0-preview8-27919-09|
| Faster | 4.11 | 0.70 | 5.88 | | Windows 10.0.18362 | 64bit | Intel Core i7-5557U CPU 3.10GHz (Broadwell) | .NET Core 2.2.6 | .NET Core 3.0.0-preview8-27919-09|
| Faster | 3.20 | 0.34 | 9.39 | | Windows 10.0.18362 | 64bit | Intel Core i7-7700 CPU 3.60GHz (Kaby Lake) | .NET Core 2.2.6 | .NET Core 3.0.0-preview8-27919-09|
| Faster | 7.23 | 2.66 | 2.72 | | Windows 10.0.18362 | 64bit | AMD Ryzen 7 1800X | .NET Core 2.2.6 | .NET Core 3.0.0-preview8-27919-09|
| Faster | 3.78 | 0.68 | 5.60 | | Windows 10.0.18362 | 32bit | Intel Xeon CPU E5-1650 v4 3.60GHz | .NET Core 2.2.6 | .NET Core 3.0.0-preview8-27919-09|
| conclusion | Base | Diff | Base/Diff | Modality | Operating System | Arch | Processor Name | Base Runtime | Diff Runtime |
| ---------- | -----:| ----:| ---------:| -------- | -------------------- | ----- | ------------------------------------------- | --------------- | --------------------------------- |
| Faster | 6.99 | 0.68 | 10.32 | | ubuntu 18.04 | 64bit | Intel Xeon CPU E5-1650 v4 3.60GHz | .NET Core 2.2.6 | .NET Core 3.0.0-preview8-27919-09|
| Faster | 3.02 | 0.61 | 4.94 | | Windows 10.0.18362 | 64bit | Intel Xeon CPU E5-1650 v4 3.60GHz | .NET Core 2.2.6 | .NET Core 3.0.0-preview8-27919-09|
| Faster | 11.05 | 0.98 | 11.24 | several? | ubuntu 16.04 | 64bit | Intel Xeon CPU E5-2673 v4 2.30GHz | .NET Core 2.2.6 | .NET Core 3.0.0-preview8-27919-01|
| Faster | 11.47 | 1.14 | 10.06 | bimodal | ubuntu 18.04 | 64bit | Intel Xeon CPU E5-2673 v4 2.30GHz | .NET Core 2.2.6 | .NET Core 3.0.0-preview8-27919-01|
| Faster | 9.40 | 0.78 | 12.11 | | macOS Mojave 10.14.5 | 64bit | Intel Core i7-5557U CPU 3.10GHz (Broadwell) | .NET Core 2.2.6 | .NET Core 3.0.0-preview8-27919-09|
| Faster | 3.61 | 0.78 | 4.61 | | Windows 10.0.18362 | 64bit | Intel Core i7-5557U CPU 3.10GHz (Broadwell) | .NET Core 2.2.6 | .NET Core 3.0.0-preview8-27919-09|
| Faster | 3.64 | 0.27 | 13.33 | | Windows 10.0.18362 | 64bit | Intel Core i7-7700 CPU 3.60GHz (Kaby Lake) | .NET Core 2.2.6 | .NET Core 3.0.0-preview8-27919-09|
| Faster | 7.23 | 2.66 | 2.72 | | Windows 10.0.18362 | 64bit | AMD Ryzen 7 1800X | .NET Core 2.2.6 | .NET Core 3.0.0-preview8-27919-09|
| Faster | 4.28 | 0.79 | 5.39 | | Windows 10.0.18362 | 32bit | Intel Xeon CPU E5-1650 v4 3.60GHz | .NET Core 2.2.6 | .NET Core 3.0.0-preview8-27919-09|
| conclusion | Base | Diff | Base/Diff | Modality | Operating System | Arch | Processor Name | Base Runtime | Diff Runtime |
| ---------- | -----:| ----:| ---------:| -------- | -------------------- | ----- | ------------------------------------------- | --------------- | --------------------------------- |
| Faster | 6.99 | 0.70 | 10.05 | | ubuntu 18.04 | 64bit | Intel Xeon CPU E5-1650 v4 3.60GHz | .NET Core 2.2.6 | .NET Core 3.0.0-preview8-27919-09|
| Faster | 3.43 | 0.61 | 5.60 | | Windows 10.0.18362 | 64bit | Intel Xeon CPU E5-1650 v4 3.60GHz | .NET Core 2.2.6 | .NET Core 3.0.0-preview8-27919-09|
| Faster | 11.07 | 1.03 | 10.78 | bimodal | ubuntu 16.04 | 64bit | Intel Xeon CPU E5-2673 v4 2.30GHz | .NET Core 2.2.6 | .NET Core 3.0.0-preview8-27919-01|
| Faster | 12.37 | 0.96 | 12.90 | | ubuntu 18.04 | 64bit | Intel Xeon CPU E5-2673 v4 2.30GHz | .NET Core 2.2.6 | .NET Core 3.0.0-preview8-27919-01|
| Faster | 23.03 | 0.77 | 30.09 | | macOS Mojave 10.14.5 | 64bit | Intel Core i7-5557U CPU 3.10GHz (Broadwell) | .NET Core 2.2.6 | .NET Core 3.0.0-preview8-27919-09|
| Faster | 3.61 | 0.81 | 4.47 | | Windows 10.0.18362 | 64bit | Intel Core i7-5557U CPU 3.10GHz (Broadwell) | .NET Core 2.2.6 | .NET Core 3.0.0-preview8-27919-09|
| Faster | 2.66 | 0.46 | 5.71 | | Windows 10.0.18362 | 64bit | Intel Core i7-7700 CPU 3.60GHz (Kaby Lake) | .NET Core 2.2.6 | .NET Core 3.0.0-preview8-27919-09|
| Faster | 7.23 | 2.66 | 2.72 | | Windows 10.0.18362 | 64bit | AMD Ryzen 7 1800X | .NET Core 2.2.6 | .NET Core 3.0.0-preview8-27919-09|
| Faster | 4.28 | 0.81 | 5.29 | | Windows 10.0.18362 | 32bit | Intel Xeon CPU E5-1650 v4 3.60GHz | .NET Core 2.2.6 | .NET Core 3.0.0-preview8-27919-09|
FWIW the only difference in the generated code is vzeroupper:
; netcoreapp2.2 Cast
00007FFD51891E10 48 83 EC 38 sub rsp,38h
00007FFD51891E14 48 8B 41 08 mov rax,qword ptr [rcx+8]
00007FFD51891E18 48 85 C0 test rax,rax
00007FFD51891E1B 75 07 jne 00007FFD51891E24
00007FFD51891E1D 33 C9 xor ecx,ecx
00007FFD51891E1F 45 33 C0 xor r8d,r8d
00007FFD51891E22 EB 08 jmp 00007FFD51891E2C
00007FFD51891E24 48 8D 48 10 lea rcx,[rax+10h]
00007FFD51891E28 44 8B 40 08 mov r8d,dword ptr [rax+8]
00007FFD51891E2C 48 8B C1 mov rax,rcx
00007FFD51891E2F 41 8B C8 mov ecx,r8d
00007FFD51891E32 C1 E9 05 shr ecx,5
00007FFD51891E35 83 F9 00 cmp ecx,0
00007FFD51891E38 76 18 jbe 00007FFD51891E52
00007FFD51891E3A C4 E1 7D 10 00 vmovupd ymm0,ymmword ptr [rax]
00007FFD51891E3F C4 E1 7D 11 02 vmovupd ymmword ptr [rdx],ymm0
00007FFD51891E44 48 8B C2 mov rax,rdx
00007FFD51891E47 48 83 C4 38 add rsp,38h
00007FFD51891E4B C3 ret
00007FFD51891E4C E8 AF FC C4 5F call 00007FFDB14E1B00
00007FFD51891E51 CC int 3
00007FFD51891E52 E8 59 FE C4 5F call 00007FFDB14E1CB0
00007FFD51891E57 CC int 3
; netcoreapp3.0 Cast
00007FFD51890E10 48 83 EC 28 sub rsp,28h
00007FFD51890E14 C5 F8 77 vzeroupper
00007FFD51890E17 48 8B 41 08 mov rax,qword ptr [rcx+8]
00007FFD51890E1B 48 85 C0 test rax,rax
00007FFD51890E1E 75 07 jne 00007FFD51890E27
00007FFD51890E20 33 C9 xor ecx,ecx
00007FFD51890E22 45 33 C0 xor r8d,r8d
00007FFD51890E25 EB 08 jmp 00007FFD51890E2F
00007FFD51890E27 48 8D 48 10 lea rcx,[rax+10h]
00007FFD51890E2B 44 8B 40 08 mov r8d,dword ptr [rax+8]
00007FFD51890E2F 41 C1 E8 05 shr r8d,5
00007FFD51890E33 41 83 F8 00 cmp r8d,0
00007FFD51890E37 76 19 jbe 00007FFD51890E52
00007FFD51890E39 C5 FD 10 01 vmovupd ymm0,ymmword ptr [rcx]
00007FFD51890E3D C5 FD 11 02 vmovupd ymmword ptr [rdx],ymm0
00007FFD51890E41 48 8B C2 mov rax,rdx
00007FFD51890E44 C5 F8 77 vzeroupper
00007FFD51890E47 48 83 C4 28 add rsp,28h
00007FFD51890E4B C3 ret
00007FFD51890E4C E8 CF 10 C5 5F call 00007FFDB14E1F20
00007FFD51890E51 CC int 3
00007FFD51890E52 E8 79 12 C5 5F call 00007FFDB14E20D0
00007FFD51890E57 CC int 3
Well vzeroupper and the generated code size (using the 2-byte VEX rather than the 3-byte VEX encoding).
Perhaps the instruction window was shifted just enough to cause the regression?
Hmm, maybe but the code doesn't have loops and it's rather difficult to justify a 7 cycles difference only from potential issues with branch target alignment. Anyway, updated disassembly dumps to include code address.
At least it's clear why the ctor benchmarks are faster - the Vector ctor got inlined.
And perhaps interestingly, the ctor benchmarks use vzeroupper both in 2.2 and 3.0 so if that has any issues difference won't be observed. I suppose it could be easy to check this by running the benchmarks with AVX disabled on a Ryzen CPU.
Now that I updated the disassembly I noticed an issue that I haven't seen previously - the 2.2 version had some register ping pong issue that is no longer present in 3.0. That makes it even more strange how come 3.0 has become so slow.
Yes, this is strange.
From what I've read, measuring perf on the Ryzen may be tricky because of the aggressive power management by the chip. Agner Fog says
The Ryzen processor is aggressively saving power by clock gating execution units that are not in use. The clock frequency is varied automatically depending on the work load and the chip temperature.... It is difficult to get consistent performance measurements because the clock frequency is varying so dramatically.
@adamsitnik did you mean to post numbers from other HW? Also, do we have any evidence that getting reliable Ryzen measurements is a challenge?
I've had my Ryzen 1800x for over 2 years now and never had problems getting consistent results across runs.
I believe you can also configure various power management states to help avoid that (both the built in ones and the customized ones AMD provides via their chipset driver).
The same goes for the 3900x I just got, although I'm still running various benchmarks on it.
vzeroupper is evidently not needed on modern AMD processors as they track upper and lower parts of XMMs separately.
I believe you can also configure various power management states to help avoid that
FYI BenchmarkDotNet now allows for forcing a specific power plan on Windows:
https://github.com/dotnet/BenchmarkDotNet/pull/952
https://github.com/dotnet/BenchmarkDotNet/pull/1139
We are planning to update BDN version used by the perf repo soon https://github.com/dotnet/performance/pull/511
If you want to give it a try locally you need to update BDN version locally
From what I've read, measuring perf on the Ryzen may be tricky because of the aggressive power management by the chip.
FWIW I've run the benchmarks on our ARM32 Tegra machines, they were all very unstable. If we ever want to benchmark ARM32 again we are either going to need a different machines or some more research
FWIW I've run the benchmarks on our ARM32 Tegra machines, they were all very unstable.
Were these the Jetson (they have Ubuntu 14.04) or Jetson 2 (They have a newer distro) devices? There is a way to set power management on Linux to performance using echo performance | sudo tee /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor. This keeps all the cores running at full speed all the time, I believe.
@adamsitnik, should these issues be tracked in dotnet/runtime or dotnet/performance?
Do we know if they are still showing up in daily runs?
should these issues be tracked in dotnet/runtime or dotnet/performance?
Our rule of the thumb is that the issue belongs to the repo where the action can be taken. So if a benchmark is broken, it requires a fix in the perf repo and belongs to perf repo. However, if there is a regression that requires a runtime fix, then it belongs to the runtime repo.
Do we know if they are still showing up in daily runs?
We still track the performance of this benchmark, however, I am afraid that our perf lab has no AMD machines. @DrewScoggins am I right?
Yeah, we don't have any AMD machines in the lab. We are planning to buy some in the coming year.
I currently see:
BenchmarkDotNet=v0.12.0, OS=Windows 10.0.18363
AMD Ryzen 9 3900X, 1 CPU, 24 logical and 12 physical cores
.NET Core SDK=5.0.100-preview.2.20156.4
[Host] : .NET Core 2.1.11 (CoreCLR 4.6.27617.04, CoreFX 4.6.27617.02), X64 RyuJIT
Job-QSGPOG : .NET Core 2.1.11 (CoreCLR 4.6.27617.04, CoreFX 4.6.27617.02), X64 RyuJIT
PowerPlanMode=00000000-0000-0000-0000-000000000000 Runtime=.NET Core 2.1 Toolchain=netcoreapp2.1
IterationTime=250.0000 ms MaxIterationCount=20 MinIterationCount=15
WarmupCount=1
| Method | Mean | Error | StdDev | Median | Min | Max | Gen 0 | Gen 1 | Gen 2 | Allocated |
|------------------------- |----------:|----------:|----------:|----------:|----------:|----------:|------:|------:|------:|----------:|
| SpanCastBenchmark_Byte | 0.6495 ns | 0.0172 ns | 0.0161 ns | 0.6492 ns | 0.6293 ns | 0.6797 ns | - | - | - | - |
| SpanCastBenchmark_SByte | 0.5399 ns | 0.0254 ns | 0.0225 ns | 0.5353 ns | 0.5078 ns | 0.5913 ns | - | - | - | - |
| SpanCastBenchmark_UInt16 | 0.6667 ns | 0.0090 ns | 0.0084 ns | 0.6648 ns | 0.6538 ns | 0.6835 ns | - | - | - | - |
| SpanCastBenchmark_Int16 | 0.6714 ns | 0.0120 ns | 0.0112 ns | 0.6687 ns | 0.6555 ns | 0.6987 ns | - | - | - | - |
| SpanCastBenchmark_UInt32 | 0.5416 ns | 0.0140 ns | 0.0124 ns | 0.5384 ns | 0.5228 ns | 0.5626 ns | - | - | - | - |
| SpanCastBenchmark_Int32 | 0.5549 ns | 0.0219 ns | 0.0204 ns | 0.5520 ns | 0.5330 ns | 0.6009 ns | - | - | - | - |
| SpanCastBenchmark_UInt64 | 0.6966 ns | 0.0106 ns | 0.0094 ns | 0.6965 ns | 0.6714 ns | 0.7080 ns | - | - | - | - |
| SpanCastBenchmark_Int64 | 0.6921 ns | 0.0036 ns | 0.0034 ns | 0.6920 ns | 0.6849 ns | 0.6976 ns | - | - | - | - |
| SpanCastBenchmark_Single | 0.5451 ns | 0.0080 ns | 0.0067 ns | 0.5449 ns | 0.5378 ns | 0.5624 ns | - | - | - | - |
| SpanCastBenchmark_Double | 0.6933 ns | 0.0049 ns | 0.0046 ns | 0.6948 ns | 0.6842 ns | 0.7009 ns | - | - | - | - |
vs
BenchmarkDotNet=v0.12.0, OS=Windows 10.0.18363
AMD Ryzen 9 3900X, 1 CPU, 24 logical and 12 physical cores
.NET Core SDK=5.0.100-preview.2.20156.4
[Host] : .NET Core 5.0.0 (CoreCLR 5.0.20.15501, CoreFX 5.0.20.15501), X64 RyuJIT
Job-YZGPFX : .NET Core 5.0.0 (CoreCLR 5.0.20.15501, CoreFX 5.0.20.15501), X64 RyuJIT
PowerPlanMode=00000000-0000-0000-0000-000000000000 Runtime=.NET Core 5.0 Toolchain=netcoreapp5.0
IterationTime=250.0000 ms MaxIterationCount=20 MinIterationCount=15
WarmupCount=1
| Method | Mean | Error | StdDev | Median | Min | Max | Gen 0 | Gen 1 | Gen 2 | Allocated |
|------------------------- |----------:|----------:|----------:|----------:|----------:|----------:|------:|------:|------:|----------:|
| SpanCastBenchmark_Byte | 0.2575 ns | 0.0048 ns | 0.0042 ns | 0.2572 ns | 0.2513 ns | 0.2638 ns | - | - | - | - |
| SpanCastBenchmark_SByte | 0.2732 ns | 0.0047 ns | 0.0041 ns | 0.2721 ns | 0.2663 ns | 0.2791 ns | - | - | - | - |
| SpanCastBenchmark_UInt16 | 0.4818 ns | 0.0150 ns | 0.0140 ns | 0.4869 ns | 0.4564 ns | 0.5052 ns | - | - | - | - |
| SpanCastBenchmark_Int16 | 0.5095 ns | 0.0134 ns | 0.0126 ns | 0.5060 ns | 0.4954 ns | 0.5348 ns | - | - | - | - |
| SpanCastBenchmark_UInt32 | 0.5043 ns | 0.0156 ns | 0.0146 ns | 0.4963 ns | 0.4903 ns | 0.5308 ns | - | - | - | - |
| SpanCastBenchmark_Int32 | 0.5090 ns | 0.0125 ns | 0.0117 ns | 0.5084 ns | 0.4929 ns | 0.5281 ns | - | - | - | - |
| SpanCastBenchmark_UInt64 | 0.4250 ns | 0.0143 ns | 0.0133 ns | 0.4187 ns | 0.4127 ns | 0.4611 ns | - | - | - | - |
| SpanCastBenchmark_Int64 | 0.5039 ns | 0.0085 ns | 0.0075 ns | 0.5035 ns | 0.4938 ns | 0.5239 ns | - | - | - | - |
| SpanCastBenchmark_Single | 0.5095 ns | 0.0118 ns | 0.0111 ns | 0.5092 ns | 0.4927 ns | 0.5266 ns | - | - | - | - |
| SpanCastBenchmark_Double | 0.5112 ns | 0.0155 ns | 0.0145 ns | 0.5062 ns | 0.4942 ns | 0.5313 ns | - | - | - | - |
So it looks like we are now faster across the board in .NET Core 5.
Most helpful comment
So it looks like we are now faster across the board in .NET Core 5.