Created
December 22, 2023 09:59
-
-
Save the9ball/24dcb9cb5036c059ec39bf249d87f205 to your computer and use it in GitHub Desktop.
C# Advent Calendar 2023 : Benchmark2
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| using BenchmarkDotNet.Attributes; | |
| using BenchmarkDotNet.Running; | |
| BenchmarkRunner.Run<Runner>(); | |
| record struct KVPString(int Key, int Value) | |
| { | |
| public override string ToString() => $"{Key:000000} : {Value}"; | |
| } | |
| record struct KVPSpanFormattable(int Key, int Value) : ISpanFormattable | |
| { | |
| // これはなくてもよい | |
| // public override string ToString() => $"{Key:000000} : {Value}"; | |
| public string ToString(string? format, IFormatProvider? formatProvider) | |
| { | |
| var buffer = (stackalloc char[128]); | |
| if (!TryFormat(buffer, out var charsWritten, [], formatProvider)) return ""; | |
| return new(buffer[..charsWritten]); | |
| } | |
| public bool TryFormat(Span<char> destination, out int charsWritten, ReadOnlySpan<char> format, IFormatProvider? provider) | |
| { | |
| charsWritten = 0; | |
| int cw; | |
| if (!Key.TryFormat(destination, out cw, "000000", provider)) return false; | |
| destination = destination[cw..]; | |
| charsWritten += cw; | |
| if (destination.Length < 3) return false; | |
| destination[0] = ' '; | |
| destination[1] = ':'; | |
| destination[2] = ' '; | |
| destination = destination[3..]; | |
| charsWritten += 3; | |
| if (!Value.TryFormat(destination, out cw, format, provider)) return false; | |
| //destination = destination[cw..]; | |
| charsWritten += cw; | |
| return true; | |
| } | |
| } | |
| record struct KVPSpanFormattable2(int Key, int Value) : ISpanFormattable | |
| { | |
| public string ToString(string? format, IFormatProvider? formatProvider) | |
| => $"{Key:000000} : {Value}"; | |
| public bool TryFormat(Span<char> destination, out int charsWritten, ReadOnlySpan<char> format, IFormatProvider? provider) | |
| => destination.TryWrite($"{Key:000000} : {Value}", out charsWritten); | |
| } | |
| [MemoryDiagnoser] | |
| public class Runner | |
| { | |
| private readonly int seed = (int)DateTime.Now.Ticks; | |
| private const int LoopCount = 1_000_000; | |
| [Benchmark] | |
| public void KVPString() | |
| { | |
| var r = new Random(seed); | |
| for (int i = 0; i < LoopCount; i++) | |
| { | |
| var kvp = new KVPString(r.Next(), r.Next()); | |
| _ = $"--{kvp}--"; | |
| } | |
| } | |
| [Benchmark] | |
| public void KVPSpanFormattable() | |
| { | |
| var r = new Random(seed); | |
| for (int i = 0; i < LoopCount; i++) | |
| { | |
| var kvp = new KVPSpanFormattable(r.Next(), r.Next()); | |
| _ = $"--{kvp}--"; | |
| } | |
| } | |
| [Benchmark] | |
| public void KVPSpanFormattable2() | |
| { | |
| var r = new Random(seed); | |
| for (int i = 0; i < LoopCount; i++) | |
| { | |
| var kvp = new KVPSpanFormattable2(r.Next(), r.Next()); | |
| _ = $"--{kvp}--"; | |
| } | |
| } | |
| } | |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| // Validating benchmarks: | |
| // ***** BenchmarkRunner: Start ***** | |
| // ***** Found 3 benchmark(s) in total ***** | |
| // ***** Building 1 exe(s) in Parallel: Start ***** | |
| // start dotnet restore /p:UseSharedCompilation=false /p:BuildInParallel=false /m:1 /p:Deterministic=true /p:Optimize=true in C:\Users\syasui\work\SandboxConsole\Benchmark\bin\Release\net8.0\c5644a83-9565-4dd2-bdab-772eba9d5b4d | |
| // command took 1.45 sec and exited with 0 | |
| // start dotnet build -c Release --no-restore /p:UseSharedCompilation=false /p:BuildInParallel=false /m:1 /p:Deterministic=true /p:Optimize=true in C:\Users\syasui\work\SandboxConsole\Benchmark\bin\Release\net8.0\c5644a83-9565-4dd2-bdab-772eba9d5b4d | |
| // command took 15.73 sec and exited with 1 | |
| // start dotnet build -c Release --no-restore --no-dependencies /p:UseSharedCompilation=false /p:BuildInParallel=false /m:1 /p:Deterministic=true /p:Optimize=true in C:\Users\syasui\work\SandboxConsole\Benchmark\bin\Release\net8.0\c5644a83-9565-4dd2-bdab-772eba9d5b4d | |
| // command took 2.42 sec and exited with 0 | |
| // ***** Done, took 00:00:19 (19.69 sec) ***** | |
| // Found 3 benchmarks: | |
| // Runner.KVPString: DefaultJob | |
| // Runner.KVPSpanFormattable: DefaultJob | |
| // Runner.KVPSpanFormattable2: DefaultJob | |
| Setup power plan (GUID: 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c FriendlyName: 高パフォーマンス) | |
| // ************************** | |
| // Benchmark: Runner.KVPString: DefaultJob | |
| // *** Execute *** | |
| // Launch: 1 / 1 | |
| // Execute: dotnet c5644a83-9565-4dd2-bdab-772eba9d5b4d.dll --anonymousPipes 1968 1940 --benchmarkName Runner.KVPString --job Default --benchmarkId 0 in C:\Users\syasui\work\SandboxConsole\Benchmark\bin\Release\net8.0\c5644a83-9565-4dd2-bdab-772eba9d5b4d\bin\Release\net8.0 | |
| // BeforeAnythingElse | |
| // Benchmark Process Environment Information: | |
| // BenchmarkDotNet v0.13.11 | |
| // Runtime=.NET 8.0.0 (8.0.23.53103), X64 RyuJIT AVX-512F+CD+BW+DQ+VL+VBMI | |
| // GC=Concurrent Workstation | |
| // HardwareIntrinsics=AVX-512F+CD+BW+DQ+VL+VBMI,AES,BMI1,BMI2,FMA,LZCNT,PCLMUL,POPCNT VectorSize=256 | |
| // Job: DefaultJob | |
| OverheadJitting 1: 1 op, 155700.00 ns, 155.7000 us/op | |
| WorkloadJitting 1: 1 op, 287130400.00 ns, 287.1304 ms/op | |
| WorkloadPilot 1: 2 op, 347444600.00 ns, 173.7223 ms/op | |
| WorkloadPilot 2: 3 op, 535250700.00 ns, 178.4169 ms/op | |
| WorkloadWarmup 1: 3 op, 509481900.00 ns, 169.8273 ms/op | |
| WorkloadWarmup 2: 3 op, 516009100.00 ns, 172.0030 ms/op | |
| WorkloadWarmup 3: 3 op, 515354500.00 ns, 171.7848 ms/op | |
| WorkloadWarmup 4: 3 op, 519105500.00 ns, 173.0352 ms/op | |
| WorkloadWarmup 5: 3 op, 512540400.00 ns, 170.8468 ms/op | |
| WorkloadWarmup 6: 3 op, 509749300.00 ns, 169.9164 ms/op | |
| // BeforeActualRun | |
| WorkloadActual 1: 3 op, 516044200.00 ns, 172.0147 ms/op | |
| WorkloadActual 2: 3 op, 527664300.00 ns, 175.8881 ms/op | |
| WorkloadActual 3: 3 op, 529903500.00 ns, 176.6345 ms/op | |
| WorkloadActual 4: 3 op, 565168700.00 ns, 188.3896 ms/op | |
| WorkloadActual 5: 3 op, 560664800.00 ns, 186.8883 ms/op | |
| WorkloadActual 6: 3 op, 570392600.00 ns, 190.1309 ms/op | |
| WorkloadActual 7: 3 op, 549693900.00 ns, 183.2313 ms/op | |
| WorkloadActual 8: 3 op, 567808500.00 ns, 189.2695 ms/op | |
| WorkloadActual 9: 3 op, 545298600.00 ns, 181.7662 ms/op | |
| WorkloadActual 10: 3 op, 584494600.00 ns, 194.8315 ms/op | |
| WorkloadActual 11: 3 op, 574022500.00 ns, 191.3408 ms/op | |
| WorkloadActual 12: 3 op, 563851200.00 ns, 187.9504 ms/op | |
| WorkloadActual 13: 3 op, 575313700.00 ns, 191.7712 ms/op | |
| WorkloadActual 14: 3 op, 539743600.00 ns, 179.9145 ms/op | |
| WorkloadActual 15: 3 op, 534104800.00 ns, 178.0349 ms/op | |
| WorkloadActual 16: 3 op, 548094700.00 ns, 182.6982 ms/op | |
| WorkloadActual 17: 3 op, 545247200.00 ns, 181.7491 ms/op | |
| WorkloadActual 18: 3 op, 560221900.00 ns, 186.7406 ms/op | |
| WorkloadActual 19: 3 op, 544813400.00 ns, 181.6045 ms/op | |
| WorkloadActual 20: 3 op, 553344700.00 ns, 184.4482 ms/op | |
| WorkloadActual 21: 3 op, 540050300.00 ns, 180.0168 ms/op | |
| WorkloadActual 22: 3 op, 583950300.00 ns, 194.6501 ms/op | |
| WorkloadActual 23: 3 op, 540729500.00 ns, 180.2432 ms/op | |
| WorkloadActual 24: 3 op, 589981500.00 ns, 196.6605 ms/op | |
| WorkloadActual 25: 3 op, 534093400.00 ns, 178.0311 ms/op | |
| WorkloadActual 26: 3 op, 567986800.00 ns, 189.3289 ms/op | |
| WorkloadActual 27: 3 op, 536662300.00 ns, 178.8874 ms/op | |
| WorkloadActual 28: 3 op, 539933200.00 ns, 179.9777 ms/op | |
| WorkloadActual 29: 3 op, 563498200.00 ns, 187.8327 ms/op | |
| WorkloadActual 30: 3 op, 542188300.00 ns, 180.7294 ms/op | |
| WorkloadActual 31: 3 op, 569425600.00 ns, 189.8085 ms/op | |
| WorkloadActual 32: 3 op, 552760900.00 ns, 184.2536 ms/op | |
| WorkloadActual 33: 3 op, 566610800.00 ns, 188.8703 ms/op | |
| WorkloadActual 34: 3 op, 538207800.00 ns, 179.4026 ms/op | |
| WorkloadActual 35: 3 op, 545047100.00 ns, 181.6824 ms/op | |
| // AfterActualRun | |
| WorkloadResult 1: 3 op, 516044200.00 ns, 172.0147 ms/op | |
| WorkloadResult 2: 3 op, 527664300.00 ns, 175.8881 ms/op | |
| WorkloadResult 3: 3 op, 529903500.00 ns, 176.6345 ms/op | |
| WorkloadResult 4: 3 op, 565168700.00 ns, 188.3896 ms/op | |
| WorkloadResult 5: 3 op, 560664800.00 ns, 186.8883 ms/op | |
| WorkloadResult 6: 3 op, 570392600.00 ns, 190.1309 ms/op | |
| WorkloadResult 7: 3 op, 549693900.00 ns, 183.2313 ms/op | |
| WorkloadResult 8: 3 op, 567808500.00 ns, 189.2695 ms/op | |
| WorkloadResult 9: 3 op, 545298600.00 ns, 181.7662 ms/op | |
| WorkloadResult 10: 3 op, 584494600.00 ns, 194.8315 ms/op | |
| WorkloadResult 11: 3 op, 574022500.00 ns, 191.3408 ms/op | |
| WorkloadResult 12: 3 op, 563851200.00 ns, 187.9504 ms/op | |
| WorkloadResult 13: 3 op, 575313700.00 ns, 191.7712 ms/op | |
| WorkloadResult 14: 3 op, 539743600.00 ns, 179.9145 ms/op | |
| WorkloadResult 15: 3 op, 534104800.00 ns, 178.0349 ms/op | |
| WorkloadResult 16: 3 op, 548094700.00 ns, 182.6982 ms/op | |
| WorkloadResult 17: 3 op, 545247200.00 ns, 181.7491 ms/op | |
| WorkloadResult 18: 3 op, 560221900.00 ns, 186.7406 ms/op | |
| WorkloadResult 19: 3 op, 544813400.00 ns, 181.6045 ms/op | |
| WorkloadResult 20: 3 op, 553344700.00 ns, 184.4482 ms/op | |
| WorkloadResult 21: 3 op, 540050300.00 ns, 180.0168 ms/op | |
| WorkloadResult 22: 3 op, 583950300.00 ns, 194.6501 ms/op | |
| WorkloadResult 23: 3 op, 540729500.00 ns, 180.2432 ms/op | |
| WorkloadResult 24: 3 op, 589981500.00 ns, 196.6605 ms/op | |
| WorkloadResult 25: 3 op, 534093400.00 ns, 178.0311 ms/op | |
| WorkloadResult 26: 3 op, 567986800.00 ns, 189.3289 ms/op | |
| WorkloadResult 27: 3 op, 536662300.00 ns, 178.8874 ms/op | |
| WorkloadResult 28: 3 op, 539933200.00 ns, 179.9777 ms/op | |
| WorkloadResult 29: 3 op, 563498200.00 ns, 187.8327 ms/op | |
| WorkloadResult 30: 3 op, 542188300.00 ns, 180.7294 ms/op | |
| WorkloadResult 31: 3 op, 569425600.00 ns, 189.8085 ms/op | |
| WorkloadResult 32: 3 op, 552760900.00 ns, 184.2536 ms/op | |
| WorkloadResult 33: 3 op, 566610800.00 ns, 188.8703 ms/op | |
| WorkloadResult 34: 3 op, 538207800.00 ns, 179.4026 ms/op | |
| WorkloadResult 35: 3 op, 545047100.00 ns, 181.6824 ms/op | |
| // GC: 52 0 0 443214592 3 | |
| // Threading: 0 0 3 | |
| // AfterAll | |
| // Benchmark Process 48172 has exited with code 0. | |
| Mean = 184.448 ms, StdErr = 1.002 ms (0.54%), N = 35, StdDev = 5.927 ms | |
| Min = 172.015 ms, Q1 = 179.997 ms, Median = 183.231 ms, Q3 = 189.070 ms, Max = 196.661 ms | |
| IQR = 9.073 ms, LowerFence = 166.388 ms, UpperFence = 202.679 ms | |
| ConfidenceInterval = [180.840 ms; 188.055 ms] (CI 99.9%), Margin = 3.607 ms (1.96% of Mean) | |
| Skewness = 0.17, Kurtosis = 2.17, MValue = 3.14 | |
| // ** Remained 2 (66.7%) benchmark(s) to run. Estimated finish 2023-12-22 18:56 (0h 0m from now) ** | |
| Setup power plan (GUID: 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c FriendlyName: 高パフォーマンス) | |
| // ************************** | |
| // Benchmark: Runner.KVPSpanFormattable: DefaultJob | |
| // *** Execute *** | |
| // Launch: 1 / 1 | |
| // Execute: dotnet c5644a83-9565-4dd2-bdab-772eba9d5b4d.dll --anonymousPipes 1984 1980 --benchmarkName Runner.KVPSpanFormattable --job Default --benchmarkId 1 in C:\Users\syasui\work\SandboxConsole\Benchmark\bin\Release\net8.0\c5644a83-9565-4dd2-bdab-772eba9d5b4d\bin\Release\net8.0 | |
| // BeforeAnythingElse | |
| // Benchmark Process Environment Information: | |
| // BenchmarkDotNet v0.13.11 | |
| // Runtime=.NET 8.0.0 (8.0.23.53103), X64 RyuJIT AVX-512F+CD+BW+DQ+VL+VBMI | |
| // GC=Concurrent Workstation | |
| // HardwareIntrinsics=AVX-512F+CD+BW+DQ+VL+VBMI,AES,BMI1,BMI2,FMA,LZCNT,PCLMUL,POPCNT VectorSize=256 | |
| // Job: DefaultJob | |
| OverheadJitting 1: 1 op, 151100.00 ns, 151.1000 us/op | |
| WorkloadJitting 1: 1 op, 179529700.00 ns, 179.5297 ms/op | |
| WorkloadPilot 1: 2 op, 248820700.00 ns, 124.4103 ms/op | |
| WorkloadPilot 2: 3 op, 363599000.00 ns, 121.1997 ms/op | |
| WorkloadPilot 3: 4 op, 480252900.00 ns, 120.0632 ms/op | |
| WorkloadPilot 4: 5 op, 608281600.00 ns, 121.6563 ms/op | |
| WorkloadWarmup 1: 5 op, 624310900.00 ns, 124.8622 ms/op | |
| WorkloadWarmup 2: 5 op, 652111900.00 ns, 130.4224 ms/op | |
| WorkloadWarmup 3: 5 op, 598977100.00 ns, 119.7954 ms/op | |
| WorkloadWarmup 4: 5 op, 646706400.00 ns, 129.3413 ms/op | |
| WorkloadWarmup 5: 5 op, 622802800.00 ns, 124.5606 ms/op | |
| WorkloadWarmup 6: 5 op, 620689300.00 ns, 124.1379 ms/op | |
| // BeforeActualRun | |
| WorkloadActual 1: 5 op, 670594100.00 ns, 134.1188 ms/op | |
| WorkloadActual 2: 5 op, 621808700.00 ns, 124.3617 ms/op | |
| WorkloadActual 3: 5 op, 626733600.00 ns, 125.3467 ms/op | |
| WorkloadActual 4: 5 op, 620290600.00 ns, 124.0581 ms/op | |
| WorkloadActual 5: 5 op, 614987900.00 ns, 122.9976 ms/op | |
| WorkloadActual 6: 5 op, 618824200.00 ns, 123.7648 ms/op | |
| WorkloadActual 7: 5 op, 622641600.00 ns, 124.5283 ms/op | |
| WorkloadActual 8: 5 op, 621286300.00 ns, 124.2573 ms/op | |
| WorkloadActual 9: 5 op, 627361100.00 ns, 125.4722 ms/op | |
| WorkloadActual 10: 5 op, 642479500.00 ns, 128.4959 ms/op | |
| WorkloadActual 11: 5 op, 642102600.00 ns, 128.4205 ms/op | |
| WorkloadActual 12: 5 op, 651478400.00 ns, 130.2957 ms/op | |
| WorkloadActual 13: 5 op, 620436300.00 ns, 124.0873 ms/op | |
| WorkloadActual 14: 5 op, 650428400.00 ns, 130.0857 ms/op | |
| WorkloadActual 15: 5 op, 668294400.00 ns, 133.6589 ms/op | |
| WorkloadActual 16: 5 op, 696360700.00 ns, 139.2721 ms/op | |
| WorkloadActual 17: 5 op, 630374600.00 ns, 126.0749 ms/op | |
| WorkloadActual 18: 5 op, 624458100.00 ns, 124.8916 ms/op | |
| WorkloadActual 19: 5 op, 663984300.00 ns, 132.7969 ms/op | |
| WorkloadActual 20: 5 op, 631544600.00 ns, 126.3089 ms/op | |
| WorkloadActual 21: 5 op, 641402600.00 ns, 128.2805 ms/op | |
| WorkloadActual 22: 5 op, 651972700.00 ns, 130.3945 ms/op | |
| WorkloadActual 23: 5 op, 634928200.00 ns, 126.9856 ms/op | |
| WorkloadActual 24: 5 op, 638387300.00 ns, 127.6775 ms/op | |
| WorkloadActual 25: 5 op, 618467300.00 ns, 123.6935 ms/op | |
| WorkloadActual 26: 5 op, 654166400.00 ns, 130.8333 ms/op | |
| // AfterActualRun | |
| WorkloadResult 1: 5 op, 670594100.00 ns, 134.1188 ms/op | |
| WorkloadResult 2: 5 op, 621808700.00 ns, 124.3617 ms/op | |
| WorkloadResult 3: 5 op, 626733600.00 ns, 125.3467 ms/op | |
| WorkloadResult 4: 5 op, 620290600.00 ns, 124.0581 ms/op | |
| WorkloadResult 5: 5 op, 614987900.00 ns, 122.9976 ms/op | |
| WorkloadResult 6: 5 op, 618824200.00 ns, 123.7648 ms/op | |
| WorkloadResult 7: 5 op, 622641600.00 ns, 124.5283 ms/op | |
| WorkloadResult 8: 5 op, 621286300.00 ns, 124.2573 ms/op | |
| WorkloadResult 9: 5 op, 627361100.00 ns, 125.4722 ms/op | |
| WorkloadResult 10: 5 op, 642479500.00 ns, 128.4959 ms/op | |
| WorkloadResult 11: 5 op, 642102600.00 ns, 128.4205 ms/op | |
| WorkloadResult 12: 5 op, 651478400.00 ns, 130.2957 ms/op | |
| WorkloadResult 13: 5 op, 620436300.00 ns, 124.0873 ms/op | |
| WorkloadResult 14: 5 op, 650428400.00 ns, 130.0857 ms/op | |
| WorkloadResult 15: 5 op, 668294400.00 ns, 133.6589 ms/op | |
| WorkloadResult 16: 5 op, 630374600.00 ns, 126.0749 ms/op | |
| WorkloadResult 17: 5 op, 624458100.00 ns, 124.8916 ms/op | |
| WorkloadResult 18: 5 op, 663984300.00 ns, 132.7969 ms/op | |
| WorkloadResult 19: 5 op, 631544600.00 ns, 126.3089 ms/op | |
| WorkloadResult 20: 5 op, 641402600.00 ns, 128.2805 ms/op | |
| WorkloadResult 21: 5 op, 651972700.00 ns, 130.3945 ms/op | |
| WorkloadResult 22: 5 op, 634928200.00 ns, 126.9856 ms/op | |
| WorkloadResult 23: 5 op, 638387300.00 ns, 127.6775 ms/op | |
| WorkloadResult 24: 5 op, 618467300.00 ns, 123.6935 ms/op | |
| WorkloadResult 25: 5 op, 654166400.00 ns, 130.8333 ms/op | |
| // GC: 46 0 0 389362600 5 | |
| // Threading: 0 0 5 | |
| // AfterAll | |
| // Benchmark Process 47408 has exited with code 0. | |
| Mean = 127.275 ms, StdErr = 0.665 ms (0.52%), N = 25, StdDev = 3.327 ms | |
| Min = 122.998 ms, Q1 = 124.362 ms, Median = 126.309 ms, Q3 = 130.086 ms, Max = 134.119 ms | |
| IQR = 5.724 ms, LowerFence = 115.776 ms, UpperFence = 138.672 ms | |
| ConfidenceInterval = [124.783 ms; 129.768 ms] (CI 99.9%), Margin = 2.492 ms (1.96% of Mean) | |
| Skewness = 0.59, Kurtosis = 2.06, MValue = 2 | |
| // ** Remained 1 (33.3%) benchmark(s) to run. Estimated finish 2023-12-22 18:56 (0h 0m from now) ** | |
| Setup power plan (GUID: 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c FriendlyName: 高パフォーマンス) | |
| // ************************** | |
| // Benchmark: Runner.KVPSpanFormattable2: DefaultJob | |
| // *** Execute *** | |
| // Launch: 1 / 1 | |
| // Execute: dotnet c5644a83-9565-4dd2-bdab-772eba9d5b4d.dll --anonymousPipes 1392 1328 --benchmarkName Runner.KVPSpanFormattable2 --job Default --benchmarkId 2 in C:\Users\syasui\work\SandboxConsole\Benchmark\bin\Release\net8.0\c5644a83-9565-4dd2-bdab-772eba9d5b4d\bin\Release\net8.0 | |
| // BeforeAnythingElse | |
| // Benchmark Process Environment Information: | |
| // BenchmarkDotNet v0.13.11 | |
| // Runtime=.NET 8.0.0 (8.0.23.53103), X64 RyuJIT AVX-512F+CD+BW+DQ+VL+VBMI | |
| // GC=Concurrent Workstation | |
| // HardwareIntrinsics=AVX-512F+CD+BW+DQ+VL+VBMI,AES,BMI1,BMI2,FMA,LZCNT,PCLMUL,POPCNT VectorSize=256 | |
| // Job: DefaultJob | |
| OverheadJitting 1: 1 op, 155900.00 ns, 155.9000 us/op | |
| WorkloadJitting 1: 1 op, 187412500.00 ns, 187.4125 ms/op | |
| WorkloadPilot 1: 2 op, 242827500.00 ns, 121.4137 ms/op | |
| WorkloadPilot 2: 3 op, 359345400.00 ns, 119.7818 ms/op | |
| WorkloadPilot 3: 4 op, 490746100.00 ns, 122.6865 ms/op | |
| WorkloadPilot 4: 5 op, 608194300.00 ns, 121.6389 ms/op | |
| WorkloadWarmup 1: 5 op, 693364200.00 ns, 138.6728 ms/op | |
| WorkloadWarmup 2: 5 op, 625016800.00 ns, 125.0034 ms/op | |
| WorkloadWarmup 3: 5 op, 642038000.00 ns, 128.4076 ms/op | |
| WorkloadWarmup 4: 5 op, 619310700.00 ns, 123.8621 ms/op | |
| WorkloadWarmup 5: 5 op, 620809100.00 ns, 124.1618 ms/op | |
| WorkloadWarmup 6: 5 op, 612222400.00 ns, 122.4445 ms/op | |
| // BeforeActualRun | |
| WorkloadActual 1: 5 op, 606608900.00 ns, 121.3218 ms/op | |
| WorkloadActual 2: 5 op, 620617100.00 ns, 124.1234 ms/op | |
| WorkloadActual 3: 5 op, 610505700.00 ns, 122.1011 ms/op | |
| WorkloadActual 4: 5 op, 627348400.00 ns, 125.4697 ms/op | |
| WorkloadActual 5: 5 op, 632816600.00 ns, 126.5633 ms/op | |
| WorkloadActual 6: 5 op, 636956500.00 ns, 127.3913 ms/op | |
| WorkloadActual 7: 5 op, 652194100.00 ns, 130.4388 ms/op | |
| WorkloadActual 8: 5 op, 635419700.00 ns, 127.0839 ms/op | |
| WorkloadActual 9: 5 op, 659195900.00 ns, 131.8392 ms/op | |
| WorkloadActual 10: 5 op, 662536300.00 ns, 132.5073 ms/op | |
| WorkloadActual 11: 5 op, 658293200.00 ns, 131.6586 ms/op | |
| WorkloadActual 12: 5 op, 652880300.00 ns, 130.5761 ms/op | |
| WorkloadActual 13: 5 op, 671358800.00 ns, 134.2718 ms/op | |
| WorkloadActual 14: 5 op, 657673900.00 ns, 131.5348 ms/op | |
| WorkloadActual 15: 5 op, 660914600.00 ns, 132.1829 ms/op | |
| WorkloadActual 16: 5 op, 637742500.00 ns, 127.5485 ms/op | |
| WorkloadActual 17: 5 op, 633226800.00 ns, 126.6454 ms/op | |
| WorkloadActual 18: 5 op, 636492000.00 ns, 127.2984 ms/op | |
| WorkloadActual 19: 5 op, 637356800.00 ns, 127.4714 ms/op | |
| WorkloadActual 20: 5 op, 635077600.00 ns, 127.0155 ms/op | |
| WorkloadActual 21: 5 op, 643385000.00 ns, 128.6770 ms/op | |
| WorkloadActual 22: 5 op, 662017900.00 ns, 132.4036 ms/op | |
| WorkloadActual 23: 5 op, 643209900.00 ns, 128.6420 ms/op | |
| WorkloadActual 24: 5 op, 640816600.00 ns, 128.1633 ms/op | |
| // AfterActualRun | |
| WorkloadResult 1: 5 op, 606608900.00 ns, 121.3218 ms/op | |
| WorkloadResult 2: 5 op, 620617100.00 ns, 124.1234 ms/op | |
| WorkloadResult 3: 5 op, 610505700.00 ns, 122.1011 ms/op | |
| WorkloadResult 4: 5 op, 627348400.00 ns, 125.4697 ms/op | |
| WorkloadResult 5: 5 op, 632816600.00 ns, 126.5633 ms/op | |
| WorkloadResult 6: 5 op, 636956500.00 ns, 127.3913 ms/op | |
| WorkloadResult 7: 5 op, 652194100.00 ns, 130.4388 ms/op | |
| WorkloadResult 8: 5 op, 635419700.00 ns, 127.0839 ms/op | |
| WorkloadResult 9: 5 op, 659195900.00 ns, 131.8392 ms/op | |
| WorkloadResult 10: 5 op, 662536300.00 ns, 132.5073 ms/op | |
| WorkloadResult 11: 5 op, 658293200.00 ns, 131.6586 ms/op | |
| WorkloadResult 12: 5 op, 652880300.00 ns, 130.5761 ms/op | |
| WorkloadResult 13: 5 op, 671358800.00 ns, 134.2718 ms/op | |
| WorkloadResult 14: 5 op, 657673900.00 ns, 131.5348 ms/op | |
| WorkloadResult 15: 5 op, 660914600.00 ns, 132.1829 ms/op | |
| WorkloadResult 16: 5 op, 637742500.00 ns, 127.5485 ms/op | |
| WorkloadResult 17: 5 op, 633226800.00 ns, 126.6454 ms/op | |
| WorkloadResult 18: 5 op, 636492000.00 ns, 127.2984 ms/op | |
| WorkloadResult 19: 5 op, 637356800.00 ns, 127.4714 ms/op | |
| WorkloadResult 20: 5 op, 635077600.00 ns, 127.0155 ms/op | |
| WorkloadResult 21: 5 op, 643385000.00 ns, 128.6770 ms/op | |
| WorkloadResult 22: 5 op, 662017900.00 ns, 132.4036 ms/op | |
| WorkloadResult 23: 5 op, 643209900.00 ns, 128.6420 ms/op | |
| WorkloadResult 24: 5 op, 640816600.00 ns, 128.1633 ms/op | |
| // GC: 46 0 0 389333480 5 | |
| // Threading: 0 0 5 | |
| // AfterAll | |
| // Benchmark Process 50068 has exited with code 0. | |
| Mean = 128.455 ms, StdErr = 0.678 ms (0.53%), N = 24, StdDev = 3.320 ms | |
| Min = 121.322 ms, Q1 = 126.923 ms, Median = 127.856 ms, Q3 = 131.566 ms, Max = 134.272 ms | |
| IQR = 4.643 ms, LowerFence = 119.959 ms, UpperFence = 138.530 ms | |
| ConfidenceInterval = [125.902 ms; 131.009 ms] (CI 99.9%), Margin = 2.553 ms (1.99% of Mean) | |
| Skewness = -0.29, Kurtosis = 2.37, MValue = 2 | |
| // ** Remained 0 (0.0%) benchmark(s) to run. Estimated finish 2023-12-22 18:56 (0h 0m from now) ** | |
| Successfully reverted power plan (GUID: 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c FriendlyName: 高パフォーマンス) | |
| // ***** BenchmarkRunner: Finish ***** | |
| // * Export * | |
| BenchmarkDotNet.Artifacts\results\Runner-report.csv | |
| BenchmarkDotNet.Artifacts\results\Runner-report-github.md | |
| BenchmarkDotNet.Artifacts\results\Runner-report.html | |
| // * Detailed results * | |
| Runner.KVPString: DefaultJob | |
| Runtime = .NET 8.0.0 (8.0.23.53103), X64 RyuJIT AVX-512F+CD+BW+DQ+VL+VBMI; GC = Concurrent Workstation | |
| Mean = 184.448 ms, StdErr = 1.002 ms (0.54%), N = 35, StdDev = 5.927 ms | |
| Min = 172.015 ms, Q1 = 179.997 ms, Median = 183.231 ms, Q3 = 189.070 ms, Max = 196.661 ms | |
| IQR = 9.073 ms, LowerFence = 166.388 ms, UpperFence = 202.679 ms | |
| ConfidenceInterval = [180.840 ms; 188.055 ms] (CI 99.9%), Margin = 3.607 ms (1.96% of Mean) | |
| Skewness = 0.17, Kurtosis = 2.17, MValue = 3.14 | |
| -------------------- Histogram -------------------- | |
| [171.946 ms ; 176.703 ms) | @@@ | |
| [176.703 ms ; 182.743 ms) | @@@@@@@@@@@@@@ | |
| [182.743 ms ; 186.663 ms) | @@@ | |
| [186.663 ms ; 191.419 ms) | @@@@@@@@@@@ | |
| [191.419 ms ; 198.033 ms) | @@@@ | |
| --------------------------------------------------- | |
| Runner.KVPSpanFormattable: DefaultJob | |
| Runtime = .NET 8.0.0 (8.0.23.53103), X64 RyuJIT AVX-512F+CD+BW+DQ+VL+VBMI; GC = Concurrent Workstation | |
| Mean = 127.275 ms, StdErr = 0.665 ms (0.52%), N = 25, StdDev = 3.327 ms | |
| Min = 122.998 ms, Q1 = 124.362 ms, Median = 126.309 ms, Q3 = 130.086 ms, Max = 134.119 ms | |
| IQR = 5.724 ms, LowerFence = 115.776 ms, UpperFence = 138.672 ms | |
| ConfidenceInterval = [124.783 ms; 129.768 ms] (CI 99.9%), Margin = 2.492 ms (1.96% of Mean) | |
| Skewness = 0.59, Kurtosis = 2.06, MValue = 2 | |
| -------------------- Histogram -------------------- | |
| [121.504 ms ; 126.495 ms) | @@@@@@@@@@@@@ | |
| [126.495 ms ; 131.050 ms) | @@@@@@@@@ | |
| [131.050 ms ; 134.951 ms) | @@@ | |
| --------------------------------------------------- | |
| Runner.KVPSpanFormattable2: DefaultJob | |
| Runtime = .NET 8.0.0 (8.0.23.53103), X64 RyuJIT AVX-512F+CD+BW+DQ+VL+VBMI; GC = Concurrent Workstation | |
| Mean = 128.455 ms, StdErr = 0.678 ms (0.53%), N = 24, StdDev = 3.320 ms | |
| Min = 121.322 ms, Q1 = 126.923 ms, Median = 127.856 ms, Q3 = 131.566 ms, Max = 134.272 ms | |
| IQR = 4.643 ms, LowerFence = 119.959 ms, UpperFence = 138.530 ms | |
| ConfidenceInterval = [125.902 ms; 131.009 ms] (CI 99.9%), Margin = 2.553 ms (1.99% of Mean) | |
| Skewness = -0.29, Kurtosis = 2.37, MValue = 2 | |
| -------------------- Histogram -------------------- | |
| [121.212 ms ; 124.233 ms) | @@@ | |
| [124.233 ms ; 129.131 ms) | @@@@@@@@@@@@ | |
| [129.131 ms ; 132.984 ms) | @@@@@@@@ | |
| [132.984 ms ; 135.782 ms) | @ | |
| --------------------------------------------------- | |
| // * Summary * | |
| BenchmarkDotNet v0.13.11, Windows 11 (10.0.22621.2861/22H2/2022Update/SunValley2) | |
| 11th Gen Intel Core i7-11700 2.50GHz, 1 CPU, 16 logical and 8 physical cores | |
| .NET SDK 8.0.100 | |
| [Host] : .NET 8.0.0 (8.0.23.53103), X64 RyuJIT AVX-512F+CD+BW+DQ+VL+VBMI | |
| DefaultJob : .NET 8.0.0 (8.0.23.53103), X64 RyuJIT AVX-512F+CD+BW+DQ+VL+VBMI | |
| | Method | Mean | Error | StdDev | Gen0 | Allocated | | |
| |-------------------- |---------:|--------:|--------:|-----------:|----------:| | |
| | KVPString | 184.4 ms | 3.61 ms | 5.93 ms | 17333.3333 | 140.89 MB | | |
| | KVPSpanFormattable | 127.3 ms | 2.49 ms | 3.33 ms | 9200.0000 | 74.27 MB | | |
| | KVPSpanFormattable2 | 128.5 ms | 2.55 ms | 3.32 ms | 9200.0000 | 74.26 MB | | |
| // * Warnings * | |
| MultimodalDistribution | |
| Runner.KVPString: Default -> It seems that the distribution can have several modes (mValue = 3.14) | |
| // * Hints * | |
| Outliers | |
| Runner.KVPSpanFormattable: Default -> 1 outlier was removed (139.27 ms) | |
| // * Legends * | |
| Mean : Arithmetic mean of all measurements | |
| Error : Half of 99.9% confidence interval | |
| StdDev : Standard deviation of all measurements | |
| Gen0 : GC Generation 0 collects per 1000 operations | |
| Allocated : Allocated memory per single operation (managed only, inclusive, 1KB = 1024B) | |
| 1 ms : 1 Millisecond (0.001 sec) | |
| // * Diagnostic Output - MemoryDiagnoser * | |
| // ***** BenchmarkRunner: End ***** | |
| Run time: 00:01:09 (69.58 sec), executed benchmarks: 3 | |
| Global total time: 00:01:29 (89.52 sec), executed benchmarks: 3 | |
| // * Artifacts cleanup * | |
| Artifacts cleanup is finished | |
| C:\Users\syasui\work\SandboxConsole\Benchmark\bin\Release\net8.0\Benchmark.exe (process 48012) exited with code 0. | |
| Press any key to close this window . . . |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment