daily update on 20240206 by nitload youmu

This commit is contained in:
Nitload
2024-02-06 13:54:30 +08:00
parent 5d778e0f2f
commit 8548757bbf
114 changed files with 86620 additions and 752 deletions
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,7 @@
// Validating benchmarks:
// ***** BenchmarkRunner: Start *****
// ***** Found 2 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 D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\BenchMark\bin\Release\net6.0\caeea1e9-a0c5-4b7b-94f8-332bfb7832fc
// command took 3.82 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 D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\BenchMark\bin\Release\net6.0\caeea1e9-a0c5-4b7b-94f8-332bfb7832fc
@@ -0,0 +1,523 @@
// Validating benchmarks:
// ***** BenchmarkRunner: Start *****
// ***** Found 2 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 D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\BenchMark\bin\Release\net6.0\9ebf37e0-e8d5-468e-8e87-373188e07444
// command took 1.78 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 D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\BenchMark\bin\Release\net6.0\9ebf37e0-e8d5-468e-8e87-373188e07444
// command took 14.68 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 D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\BenchMark\bin\Release\net6.0\9ebf37e0-e8d5-468e-8e87-373188e07444
// command took 3.17 sec and exited with 0
// ***** Done, took 00:00:19 (19.76 sec) *****
// Found 2 benchmarks:
// Calculator.DeleSub: .NET 6.0(Runtime=.NET 6.0)
// Calculator.PtrSub: .NET 6.0(Runtime=.NET 6.0)
Setup power plan (GUID: 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c FriendlyName: 高性能)
// **************************
// Benchmark: Calculator.DeleSub: .NET 6.0(Runtime=.NET 6.0)
// *** Execute ***
// Launch: 1 / 1
// Execute: dotnet 9ebf37e0-e8d5-468e-8e87-373188e07444.dll --anonymousPipes 1384 1340 --benchmarkName BenchMark.Calculator.DeleSub --job ".NET 6.0" --benchmarkId 0 in D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\BenchMark\bin\Release\net6.0\9ebf37e0-e8d5-468e-8e87-373188e07444\bin\Release\net6.0
// BeforeAnythingElse
// Benchmark Process Environment Information:
// BenchmarkDotNet v0.13.12
// Runtime=.NET 6.0.25 (6.0.2523.51912), X64 RyuJIT AVX2
// GC=Concurrent Workstation
// HardwareIntrinsics=AVX2,AES,BMI1,BMI2,FMA,LZCNT,PCLMUL,POPCNT,AvxVnni VectorSize=256
// Job: .NET 6.0
OverheadJitting 1: 1 op, 263600.00 ns, 263.6000 us/op
WorkloadJitting 1: 1 op, 234800.00 ns, 234.8000 us/op
OverheadJitting 2: 16 op, 199900.00 ns, 12.4938 us/op
WorkloadJitting 2: 16 op, 197900.00 ns, 12.3688 us/op
WorkloadPilot 1: 16 op, 2000.00 ns, 125.0000 ns/op
WorkloadPilot 2: 32 op, 1800.00 ns, 56.2500 ns/op
WorkloadPilot 3: 64 op, 1900.00 ns, 29.6875 ns/op
WorkloadPilot 4: 128 op, 3000.00 ns, 23.4375 ns/op
WorkloadPilot 5: 256 op, 5100.00 ns, 19.9219 ns/op
WorkloadPilot 6: 512 op, 9100.00 ns, 17.7734 ns/op
WorkloadPilot 7: 1024 op, 15300.00 ns, 14.9414 ns/op
WorkloadPilot 8: 2048 op, 29100.00 ns, 14.2090 ns/op
WorkloadPilot 9: 4096 op, 108400.00 ns, 26.4648 ns/op
WorkloadPilot 10: 8192 op, 190600.00 ns, 23.2666 ns/op
WorkloadPilot 11: 16384 op, 368700.00 ns, 22.5037 ns/op
WorkloadPilot 12: 32768 op, 768200.00 ns, 23.4436 ns/op
WorkloadPilot 13: 65536 op, 1520200.00 ns, 23.1964 ns/op
WorkloadPilot 14: 131072 op, 3078600.00 ns, 23.4879 ns/op
WorkloadPilot 15: 262144 op, 5402800.00 ns, 20.6100 ns/op
WorkloadPilot 16: 524288 op, 7086000.00 ns, 13.5155 ns/op
WorkloadPilot 17: 1048576 op, 13437200.00 ns, 12.8147 ns/op
WorkloadPilot 18: 2097152 op, 27682600.00 ns, 13.2001 ns/op
WorkloadPilot 19: 4194304 op, 55406800.00 ns, 13.2100 ns/op
WorkloadPilot 20: 8388608 op, 103498000.00 ns, 12.3379 ns/op
WorkloadPilot 21: 16777216 op, 188999300.00 ns, 11.2652 ns/op
WorkloadPilot 22: 33554432 op, 385233000.00 ns, 11.4808 ns/op
WorkloadPilot 23: 67108864 op, 784895200.00 ns, 11.6958 ns/op
OverheadWarmup 1: 67108864 op, 169261300.00 ns, 2.5222 ns/op
OverheadWarmup 2: 67108864 op, 152725700.00 ns, 2.2758 ns/op
OverheadWarmup 3: 67108864 op, 152486200.00 ns, 2.2722 ns/op
OverheadWarmup 4: 67108864 op, 205815400.00 ns, 3.0669 ns/op
OverheadWarmup 5: 67108864 op, 146410200.00 ns, 2.1817 ns/op
OverheadWarmup 6: 67108864 op, 148509500.00 ns, 2.2130 ns/op
OverheadWarmup 7: 67108864 op, 152452600.00 ns, 2.2717 ns/op
OverheadWarmup 8: 67108864 op, 180120500.00 ns, 2.6840 ns/op
OverheadWarmup 9: 67108864 op, 144396900.00 ns, 2.1517 ns/op
OverheadActual 1: 67108864 op, 145634700.00 ns, 2.1701 ns/op
OverheadActual 2: 67108864 op, 147801900.00 ns, 2.2024 ns/op
OverheadActual 3: 67108864 op, 188000600.00 ns, 2.8014 ns/op
OverheadActual 4: 67108864 op, 146356100.00 ns, 2.1809 ns/op
OverheadActual 5: 67108864 op, 176357900.00 ns, 2.6279 ns/op
OverheadActual 6: 67108864 op, 146467300.00 ns, 2.1825 ns/op
OverheadActual 7: 67108864 op, 145461400.00 ns, 2.1675 ns/op
OverheadActual 8: 67108864 op, 145611300.00 ns, 2.1698 ns/op
OverheadActual 9: 67108864 op, 149552600.00 ns, 2.2285 ns/op
OverheadActual 10: 67108864 op, 145731000.00 ns, 2.1716 ns/op
OverheadActual 11: 67108864 op, 183643100.00 ns, 2.7365 ns/op
OverheadActual 12: 67108864 op, 171685000.00 ns, 2.5583 ns/op
OverheadActual 13: 67108864 op, 165229600.00 ns, 2.4621 ns/op
OverheadActual 14: 67108864 op, 149316300.00 ns, 2.2250 ns/op
OverheadActual 15: 67108864 op, 145975700.00 ns, 2.1752 ns/op
OverheadActual 16: 67108864 op, 156882800.00 ns, 2.3377 ns/op
OverheadActual 17: 67108864 op, 144694800.00 ns, 2.1561 ns/op
OverheadActual 18: 67108864 op, 145172900.00 ns, 2.1632 ns/op
OverheadActual 19: 67108864 op, 184021000.00 ns, 2.7421 ns/op
OverheadActual 20: 67108864 op, 183514800.00 ns, 2.7346 ns/op
WorkloadWarmup 1: 67108864 op, 794890600.00 ns, 11.8448 ns/op
WorkloadWarmup 2: 67108864 op, 770772000.00 ns, 11.4854 ns/op
WorkloadWarmup 3: 67108864 op, 778214800.00 ns, 11.5963 ns/op
WorkloadWarmup 4: 67108864 op, 763171800.00 ns, 11.3721 ns/op
WorkloadWarmup 5: 67108864 op, 774604100.00 ns, 11.5425 ns/op
WorkloadWarmup 6: 67108864 op, 780230800.00 ns, 11.6263 ns/op
WorkloadWarmup 7: 67108864 op, 779015100.00 ns, 11.6082 ns/op
// BeforeActualRun
WorkloadActual 1: 67108864 op, 769137000.00 ns, 11.4610 ns/op
WorkloadActual 2: 67108864 op, 775109800.00 ns, 11.5500 ns/op
WorkloadActual 3: 67108864 op, 773654200.00 ns, 11.5283 ns/op
WorkloadActual 4: 67108864 op, 763381700.00 ns, 11.3753 ns/op
WorkloadActual 5: 67108864 op, 768779800.00 ns, 11.4557 ns/op
WorkloadActual 6: 67108864 op, 781205400.00 ns, 11.6409 ns/op
WorkloadActual 7: 67108864 op, 877323700.00 ns, 13.0731 ns/op
WorkloadActual 8: 67108864 op, 748234600.00 ns, 11.1496 ns/op
WorkloadActual 9: 67108864 op, 800227900.00 ns, 11.9243 ns/op
WorkloadActual 10: 67108864 op, 745368000.00 ns, 11.1068 ns/op
WorkloadActual 11: 67108864 op, 822503100.00 ns, 12.2563 ns/op
WorkloadActual 12: 67108864 op, 807004400.00 ns, 12.0253 ns/op
WorkloadActual 13: 67108864 op, 781736700.00 ns, 11.6488 ns/op
WorkloadActual 14: 67108864 op, 780825000.00 ns, 11.6352 ns/op
WorkloadActual 15: 67108864 op, 771194700.00 ns, 11.4917 ns/op
WorkloadActual 16: 67108864 op, 788248600.00 ns, 11.7458 ns/op
WorkloadActual 17: 67108864 op, 765529400.00 ns, 11.4073 ns/op
WorkloadActual 18: 67108864 op, 810286200.00 ns, 12.0742 ns/op
WorkloadActual 19: 67108864 op, 753810600.00 ns, 11.2327 ns/op
WorkloadActual 20: 67108864 op, 827406000.00 ns, 12.3293 ns/op
WorkloadActual 21: 67108864 op, 779712000.00 ns, 11.6186 ns/op
WorkloadActual 22: 67108864 op, 774424400.00 ns, 11.5398 ns/op
WorkloadActual 23: 67108864 op, 759293500.00 ns, 11.3144 ns/op
WorkloadActual 24: 67108864 op, 782318200.00 ns, 11.6574 ns/op
WorkloadActual 25: 67108864 op, 753596800.00 ns, 11.2295 ns/op
WorkloadActual 26: 67108864 op, 777541400.00 ns, 11.5863 ns/op
// AfterActualRun
WorkloadResult 1: 67108864 op, 620577900.00 ns, 9.2473 ns/op
WorkloadResult 2: 67108864 op, 626550700.00 ns, 9.3363 ns/op
WorkloadResult 3: 67108864 op, 625095100.00 ns, 9.3146 ns/op
WorkloadResult 4: 67108864 op, 614822600.00 ns, 9.1616 ns/op
WorkloadResult 5: 67108864 op, 620220700.00 ns, 9.2420 ns/op
WorkloadResult 6: 67108864 op, 632646300.00 ns, 9.4272 ns/op
WorkloadResult 7: 67108864 op, 599675500.00 ns, 8.9359 ns/op
WorkloadResult 8: 67108864 op, 651668800.00 ns, 9.7106 ns/op
WorkloadResult 9: 67108864 op, 596808900.00 ns, 8.8931 ns/op
WorkloadResult 10: 67108864 op, 658445300.00 ns, 9.8116 ns/op
WorkloadResult 11: 67108864 op, 633177600.00 ns, 9.4351 ns/op
WorkloadResult 12: 67108864 op, 632265900.00 ns, 9.4215 ns/op
WorkloadResult 13: 67108864 op, 622635600.00 ns, 9.2780 ns/op
WorkloadResult 14: 67108864 op, 639689500.00 ns, 9.5321 ns/op
WorkloadResult 15: 67108864 op, 616970300.00 ns, 9.1936 ns/op
WorkloadResult 16: 67108864 op, 661727100.00 ns, 9.8605 ns/op
WorkloadResult 17: 67108864 op, 605251500.00 ns, 9.0190 ns/op
WorkloadResult 18: 67108864 op, 631152900.00 ns, 9.4049 ns/op
WorkloadResult 19: 67108864 op, 625865300.00 ns, 9.3261 ns/op
WorkloadResult 20: 67108864 op, 610734400.00 ns, 9.1007 ns/op
WorkloadResult 21: 67108864 op, 633759100.00 ns, 9.4437 ns/op
WorkloadResult 22: 67108864 op, 605037700.00 ns, 9.0158 ns/op
WorkloadResult 23: 67108864 op, 628982300.00 ns, 9.3726 ns/op
// AfterAll
// Benchmark Process 2356 has exited with code 0.
Mean = 9.325 ns, StdErr = 0.053 ns (0.57%), N = 23, StdDev = 0.253 ns
Min = 8.893 ns, Q1 = 9.178 ns, Median = 9.326 ns, Q3 = 9.431 ns, Max = 9.861 ns
IQR = 0.254 ns, LowerFence = 8.797 ns, UpperFence = 9.811 ns
ConfidenceInterval = [9.125 ns; 9.525 ns] (CI 99.9%), Margin = 0.200 ns (2.14% of Mean)
Skewness = 0.33, Kurtosis = 2.57, MValue = 2
// ** Remained 1 (50.0%) benchmark(s) to run. Estimated finish 2024-02-04 18:28 (0h 0m from now) **
Setup power plan (GUID: 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c FriendlyName: 高性能)
// **************************
// Benchmark: Calculator.PtrSub: .NET 6.0(Runtime=.NET 6.0)
// *** Execute ***
// Launch: 1 / 1
// Execute: dotnet 9ebf37e0-e8d5-468e-8e87-373188e07444.dll --anonymousPipes 1456 1224 --benchmarkName BenchMark.Calculator.PtrSub --job ".NET 6.0" --benchmarkId 1 in D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\BenchMark\bin\Release\net6.0\9ebf37e0-e8d5-468e-8e87-373188e07444\bin\Release\net6.0
// BeforeAnythingElse
// Benchmark Process Environment Information:
// BenchmarkDotNet v0.13.12
// Runtime=.NET 6.0.25 (6.0.2523.51912), X64 RyuJIT AVX2
// GC=Concurrent Workstation
// HardwareIntrinsics=AVX2,AES,BMI1,BMI2,FMA,LZCNT,PCLMUL,POPCNT,AvxVnni VectorSize=256
// Job: .NET 6.0
OverheadJitting 1: 1 op, 243100.00 ns, 243.1000 us/op
WorkloadJitting 1: 1 op, 181900.00 ns, 181.9000 us/op
OverheadJitting 2: 16 op, 194700.00 ns, 12.1687 us/op
WorkloadJitting 2: 16 op, 193200.00 ns, 12.0750 us/op
WorkloadPilot 1: 16 op, 600.00 ns, 37.5000 ns/op
WorkloadPilot 2: 32 op, 500.00 ns, 15.6250 ns/op
WorkloadPilot 3: 64 op, 600.00 ns, 9.3750 ns/op
WorkloadPilot 4: 128 op, 900.00 ns, 7.0312 ns/op
WorkloadPilot 5: 256 op, 1300.00 ns, 5.0781 ns/op
WorkloadPilot 6: 512 op, 2200.00 ns, 4.2969 ns/op
WorkloadPilot 7: 1024 op, 4400.00 ns, 4.2969 ns/op
WorkloadPilot 8: 2048 op, 8200.00 ns, 4.0039 ns/op
WorkloadPilot 9: 4096 op, 16100.00 ns, 3.9307 ns/op
WorkloadPilot 10: 8192 op, 31800.00 ns, 3.8818 ns/op
WorkloadPilot 11: 16384 op, 63000.00 ns, 3.8452 ns/op
WorkloadPilot 12: 32768 op, 125700.00 ns, 3.8361 ns/op
WorkloadPilot 13: 65536 op, 250900.00 ns, 3.8284 ns/op
WorkloadPilot 14: 131072 op, 501100.00 ns, 3.8231 ns/op
WorkloadPilot 15: 262144 op, 1002400.00 ns, 3.8239 ns/op
WorkloadPilot 16: 524288 op, 2355000.00 ns, 4.4918 ns/op
WorkloadPilot 17: 1048576 op, 4789100.00 ns, 4.5672 ns/op
WorkloadPilot 18: 2097152 op, 7949600.00 ns, 3.7907 ns/op
WorkloadPilot 19: 4194304 op, 18041200.00 ns, 4.3014 ns/op
WorkloadPilot 20: 8388608 op, 32521400.00 ns, 3.8769 ns/op
WorkloadPilot 21: 16777216 op, 89853300.00 ns, 5.3557 ns/op
WorkloadPilot 22: 33554432 op, 136157900.00 ns, 4.0578 ns/op
WorkloadPilot 23: 67108864 op, 238039100.00 ns, 3.5471 ns/op
WorkloadPilot 24: 134217728 op, 509866800.00 ns, 3.7988 ns/op
OverheadWarmup 1: 134217728 op, 318984400.00 ns, 2.3766 ns/op
OverheadWarmup 2: 134217728 op, 380819500.00 ns, 2.8373 ns/op
OverheadWarmup 3: 134217728 op, 302220900.00 ns, 2.2517 ns/op
OverheadWarmup 4: 134217728 op, 290983100.00 ns, 2.1680 ns/op
OverheadWarmup 5: 134217728 op, 291767100.00 ns, 2.1738 ns/op
OverheadWarmup 6: 134217728 op, 297264500.00 ns, 2.2148 ns/op
OverheadWarmup 7: 134217728 op, 293313000.00 ns, 2.1854 ns/op
OverheadActual 1: 134217728 op, 292367800.00 ns, 2.1783 ns/op
OverheadActual 2: 134217728 op, 290961900.00 ns, 2.1678 ns/op
OverheadActual 3: 134217728 op, 294334000.00 ns, 2.1930 ns/op
OverheadActual 4: 134217728 op, 297342300.00 ns, 2.2154 ns/op
OverheadActual 5: 134217728 op, 293626900.00 ns, 2.1877 ns/op
OverheadActual 6: 134217728 op, 294895600.00 ns, 2.1971 ns/op
OverheadActual 7: 134217728 op, 360751700.00 ns, 2.6878 ns/op
OverheadActual 8: 134217728 op, 320075600.00 ns, 2.3847 ns/op
OverheadActual 9: 134217728 op, 294782800.00 ns, 2.1963 ns/op
OverheadActual 10: 134217728 op, 347160800.00 ns, 2.5865 ns/op
OverheadActual 11: 134217728 op, 290746800.00 ns, 2.1662 ns/op
OverheadActual 12: 134217728 op, 289205000.00 ns, 2.1547 ns/op
OverheadActual 13: 134217728 op, 295042700.00 ns, 2.1982 ns/op
OverheadActual 14: 134217728 op, 289224000.00 ns, 2.1549 ns/op
OverheadActual 15: 134217728 op, 297822100.00 ns, 2.2189 ns/op
WorkloadWarmup 1: 134217728 op, 476241400.00 ns, 3.5483 ns/op
WorkloadWarmup 2: 134217728 op, 487481200.00 ns, 3.6320 ns/op
WorkloadWarmup 3: 134217728 op, 494291400.00 ns, 3.6828 ns/op
WorkloadWarmup 4: 134217728 op, 473500200.00 ns, 3.5279 ns/op
WorkloadWarmup 5: 134217728 op, 479731300.00 ns, 3.5743 ns/op
WorkloadWarmup 6: 134217728 op, 514990700.00 ns, 3.8370 ns/op
WorkloadWarmup 7: 134217728 op, 482179800.00 ns, 3.5925 ns/op
// BeforeActualRun
WorkloadActual 1: 134217728 op, 473972400.00 ns, 3.5314 ns/op
WorkloadActual 2: 134217728 op, 478873800.00 ns, 3.5679 ns/op
WorkloadActual 3: 134217728 op, 573936000.00 ns, 4.2762 ns/op
WorkloadActual 4: 134217728 op, 699470000.00 ns, 5.2115 ns/op
WorkloadActual 5: 134217728 op, 485260200.00 ns, 3.6155 ns/op
WorkloadActual 6: 134217728 op, 481148200.00 ns, 3.5848 ns/op
WorkloadActual 7: 134217728 op, 476720100.00 ns, 3.5518 ns/op
WorkloadActual 8: 134217728 op, 525766200.00 ns, 3.9173 ns/op
WorkloadActual 9: 134217728 op, 474531500.00 ns, 3.5355 ns/op
WorkloadActual 10: 134217728 op, 534070700.00 ns, 3.9791 ns/op
WorkloadActual 11: 134217728 op, 486773200.00 ns, 3.6267 ns/op
WorkloadActual 12: 134217728 op, 528276200.00 ns, 3.9360 ns/op
WorkloadActual 13: 134217728 op, 530367200.00 ns, 3.9515 ns/op
WorkloadActual 14: 134217728 op, 670401100.00 ns, 4.9949 ns/op
WorkloadActual 15: 134217728 op, 516708100.00 ns, 3.8498 ns/op
WorkloadActual 16: 134217728 op, 504049500.00 ns, 3.7555 ns/op
WorkloadActual 17: 134217728 op, 463578000.00 ns, 3.4539 ns/op
WorkloadActual 18: 134217728 op, 463216200.00 ns, 3.4512 ns/op
WorkloadActual 19: 134217728 op, 505676800.00 ns, 3.7676 ns/op
WorkloadActual 20: 134217728 op, 467711000.00 ns, 3.4847 ns/op
WorkloadActual 21: 134217728 op, 473567100.00 ns, 3.5283 ns/op
WorkloadActual 22: 134217728 op, 500774800.00 ns, 3.7311 ns/op
WorkloadActual 23: 134217728 op, 467487100.00 ns, 3.4831 ns/op
WorkloadActual 24: 134217728 op, 527752600.00 ns, 3.9321 ns/op
WorkloadActual 25: 134217728 op, 469069800.00 ns, 3.4948 ns/op
WorkloadActual 26: 134217728 op, 513209300.00 ns, 3.8237 ns/op
WorkloadActual 27: 134217728 op, 525664500.00 ns, 3.9165 ns/op
WorkloadActual 28: 134217728 op, 537797000.00 ns, 4.0069 ns/op
WorkloadActual 29: 134217728 op, 464479700.00 ns, 3.4606 ns/op
WorkloadActual 30: 134217728 op, 632549800.00 ns, 4.7129 ns/op
WorkloadActual 31: 134217728 op, 491176600.00 ns, 3.6596 ns/op
WorkloadActual 32: 134217728 op, 469650900.00 ns, 3.4992 ns/op
WorkloadActual 33: 134217728 op, 480864000.00 ns, 3.5827 ns/op
WorkloadActual 34: 134217728 op, 475670300.00 ns, 3.5440 ns/op
WorkloadActual 35: 134217728 op, 465781300.00 ns, 3.4703 ns/op
WorkloadActual 36: 134217728 op, 610131200.00 ns, 4.5458 ns/op
WorkloadActual 37: 134217728 op, 527323800.00 ns, 3.9289 ns/op
WorkloadActual 38: 134217728 op, 517611500.00 ns, 3.8565 ns/op
WorkloadActual 39: 134217728 op, 569363500.00 ns, 4.2421 ns/op
WorkloadActual 40: 134217728 op, 846096300.00 ns, 6.3039 ns/op
WorkloadActual 41: 134217728 op, 516831100.00 ns, 3.8507 ns/op
WorkloadActual 42: 134217728 op, 596778900.00 ns, 4.4463 ns/op
WorkloadActual 43: 134217728 op, 722625900.00 ns, 5.3840 ns/op
WorkloadActual 44: 134217728 op, 564218900.00 ns, 4.2038 ns/op
WorkloadActual 45: 134217728 op, 516380700.00 ns, 3.8473 ns/op
WorkloadActual 46: 134217728 op, 482069300.00 ns, 3.5917 ns/op
WorkloadActual 47: 134217728 op, 476202600.00 ns, 3.5480 ns/op
WorkloadActual 48: 134217728 op, 506248900.00 ns, 3.7718 ns/op
WorkloadActual 49: 134217728 op, 477058600.00 ns, 3.5544 ns/op
WorkloadActual 50: 134217728 op, 501394900.00 ns, 3.7357 ns/op
WorkloadActual 51: 134217728 op, 516678900.00 ns, 3.8496 ns/op
WorkloadActual 52: 134217728 op, 494090400.00 ns, 3.6813 ns/op
WorkloadActual 53: 134217728 op, 818341600.00 ns, 6.0971 ns/op
WorkloadActual 54: 134217728 op, 479668900.00 ns, 3.5738 ns/op
WorkloadActual 55: 134217728 op, 480714700.00 ns, 3.5816 ns/op
WorkloadActual 56: 134217728 op, 463685800.00 ns, 3.4547 ns/op
WorkloadActual 57: 134217728 op, 535999700.00 ns, 3.9935 ns/op
WorkloadActual 58: 134217728 op, 466888800.00 ns, 3.4786 ns/op
WorkloadActual 59: 134217728 op, 462744500.00 ns, 3.4477 ns/op
WorkloadActual 60: 134217728 op, 614815000.00 ns, 4.5807 ns/op
WorkloadActual 61: 134217728 op, 499110800.00 ns, 3.7187 ns/op
WorkloadActual 62: 134217728 op, 484168500.00 ns, 3.6073 ns/op
WorkloadActual 63: 134217728 op, 471961100.00 ns, 3.5164 ns/op
WorkloadActual 64: 134217728 op, 538734800.00 ns, 4.0139 ns/op
WorkloadActual 65: 134217728 op, 469845000.00 ns, 3.5006 ns/op
WorkloadActual 66: 134217728 op, 479704900.00 ns, 3.5741 ns/op
WorkloadActual 67: 134217728 op, 509174600.00 ns, 3.7936 ns/op
WorkloadActual 68: 134217728 op, 498237700.00 ns, 3.7122 ns/op
WorkloadActual 69: 134217728 op, 484775800.00 ns, 3.6119 ns/op
WorkloadActual 70: 134217728 op, 465986400.00 ns, 3.4719 ns/op
WorkloadActual 71: 134217728 op, 470216100.00 ns, 3.5034 ns/op
WorkloadActual 72: 134217728 op, 545216200.00 ns, 4.0622 ns/op
WorkloadActual 73: 134217728 op, 470640900.00 ns, 3.5065 ns/op
WorkloadActual 74: 134217728 op, 504144900.00 ns, 3.7562 ns/op
WorkloadActual 75: 134217728 op, 520980600.00 ns, 3.8816 ns/op
WorkloadActual 76: 134217728 op, 493514500.00 ns, 3.6770 ns/op
WorkloadActual 77: 134217728 op, 546201600.00 ns, 4.0695 ns/op
WorkloadActual 78: 134217728 op, 511572300.00 ns, 3.8115 ns/op
WorkloadActual 79: 134217728 op, 514529500.00 ns, 3.8335 ns/op
WorkloadActual 80: 134217728 op, 489085100.00 ns, 3.6440 ns/op
WorkloadActual 81: 134217728 op, 585033200.00 ns, 4.3588 ns/op
WorkloadActual 82: 134217728 op, 496497400.00 ns, 3.6992 ns/op
WorkloadActual 83: 134217728 op, 490505800.00 ns, 3.6546 ns/op
WorkloadActual 84: 134217728 op, 482429600.00 ns, 3.5944 ns/op
WorkloadActual 85: 134217728 op, 590686600.00 ns, 4.4010 ns/op
WorkloadActual 86: 134217728 op, 459750200.00 ns, 3.4254 ns/op
WorkloadActual 87: 134217728 op, 638268400.00 ns, 4.7555 ns/op
WorkloadActual 88: 134217728 op, 582426900.00 ns, 4.3394 ns/op
WorkloadActual 89: 134217728 op, 473620700.00 ns, 3.5287 ns/op
WorkloadActual 90: 134217728 op, 479014800.00 ns, 3.5689 ns/op
WorkloadActual 91: 134217728 op, 470074000.00 ns, 3.5023 ns/op
WorkloadActual 92: 134217728 op, 540805000.00 ns, 4.0293 ns/op
WorkloadActual 93: 134217728 op, 464333500.00 ns, 3.4596 ns/op
WorkloadActual 94: 134217728 op, 463081500.00 ns, 3.4502 ns/op
WorkloadActual 95: 134217728 op, 511920300.00 ns, 3.8141 ns/op
WorkloadActual 96: 134217728 op, 518801100.00 ns, 3.8654 ns/op
WorkloadActual 97: 134217728 op, 474982900.00 ns, 3.5389 ns/op
WorkloadActual 98: 134217728 op, 516448100.00 ns, 3.8478 ns/op
WorkloadActual 99: 134217728 op, 502052300.00 ns, 3.7406 ns/op
WorkloadActual 100: 134217728 op, 537358900.00 ns, 4.0036 ns/op
// AfterActualRun
WorkloadResult 1: 134217728 op, 179189600.00 ns, 1.3351 ns/op
WorkloadResult 2: 134217728 op, 184091000.00 ns, 1.3716 ns/op
WorkloadResult 3: 134217728 op, 279153200.00 ns, 2.0799 ns/op
WorkloadResult 4: 134217728 op, 190477400.00 ns, 1.4192 ns/op
WorkloadResult 5: 134217728 op, 186365400.00 ns, 1.3885 ns/op
WorkloadResult 6: 134217728 op, 181937300.00 ns, 1.3555 ns/op
WorkloadResult 7: 134217728 op, 230983400.00 ns, 1.7210 ns/op
WorkloadResult 8: 134217728 op, 179748700.00 ns, 1.3392 ns/op
WorkloadResult 9: 134217728 op, 239287900.00 ns, 1.7828 ns/op
WorkloadResult 10: 134217728 op, 191990400.00 ns, 1.4304 ns/op
WorkloadResult 11: 134217728 op, 233493400.00 ns, 1.7397 ns/op
WorkloadResult 12: 134217728 op, 235584400.00 ns, 1.7552 ns/op
WorkloadResult 13: 134217728 op, 221925300.00 ns, 1.6535 ns/op
WorkloadResult 14: 134217728 op, 209266700.00 ns, 1.5592 ns/op
WorkloadResult 15: 134217728 op, 168795200.00 ns, 1.2576 ns/op
WorkloadResult 16: 134217728 op, 168433400.00 ns, 1.2549 ns/op
WorkloadResult 17: 134217728 op, 210894000.00 ns, 1.5713 ns/op
WorkloadResult 18: 134217728 op, 172928200.00 ns, 1.2884 ns/op
WorkloadResult 19: 134217728 op, 178784300.00 ns, 1.3320 ns/op
WorkloadResult 20: 134217728 op, 205992000.00 ns, 1.5348 ns/op
WorkloadResult 21: 134217728 op, 172704300.00 ns, 1.2867 ns/op
WorkloadResult 22: 134217728 op, 232969800.00 ns, 1.7358 ns/op
WorkloadResult 23: 134217728 op, 174287000.00 ns, 1.2985 ns/op
WorkloadResult 24: 134217728 op, 218426500.00 ns, 1.6274 ns/op
WorkloadResult 25: 134217728 op, 230881700.00 ns, 1.7202 ns/op
WorkloadResult 26: 134217728 op, 243014200.00 ns, 1.8106 ns/op
WorkloadResult 27: 134217728 op, 169696900.00 ns, 1.2643 ns/op
WorkloadResult 28: 134217728 op, 196393800.00 ns, 1.4632 ns/op
WorkloadResult 29: 134217728 op, 174868100.00 ns, 1.3029 ns/op
WorkloadResult 30: 134217728 op, 186081200.00 ns, 1.3864 ns/op
WorkloadResult 31: 134217728 op, 180887500.00 ns, 1.3477 ns/op
WorkloadResult 32: 134217728 op, 170998500.00 ns, 1.2740 ns/op
WorkloadResult 33: 134217728 op, 232541000.00 ns, 1.7326 ns/op
WorkloadResult 34: 134217728 op, 222828700.00 ns, 1.6602 ns/op
WorkloadResult 35: 134217728 op, 274580700.00 ns, 2.0458 ns/op
WorkloadResult 36: 134217728 op, 222048300.00 ns, 1.6544 ns/op
WorkloadResult 37: 134217728 op, 301996100.00 ns, 2.2500 ns/op
WorkloadResult 38: 134217728 op, 269436100.00 ns, 2.0075 ns/op
WorkloadResult 39: 134217728 op, 221597900.00 ns, 1.6510 ns/op
WorkloadResult 40: 134217728 op, 187286500.00 ns, 1.3954 ns/op
WorkloadResult 41: 134217728 op, 181419800.00 ns, 1.3517 ns/op
WorkloadResult 42: 134217728 op, 211466100.00 ns, 1.5755 ns/op
WorkloadResult 43: 134217728 op, 182275800.00 ns, 1.3581 ns/op
WorkloadResult 44: 134217728 op, 206612100.00 ns, 1.5394 ns/op
WorkloadResult 45: 134217728 op, 221896100.00 ns, 1.6533 ns/op
WorkloadResult 46: 134217728 op, 199307600.00 ns, 1.4850 ns/op
WorkloadResult 47: 134217728 op, 184886100.00 ns, 1.3775 ns/op
WorkloadResult 48: 134217728 op, 185931900.00 ns, 1.3853 ns/op
WorkloadResult 49: 134217728 op, 168903000.00 ns, 1.2584 ns/op
WorkloadResult 50: 134217728 op, 241216900.00 ns, 1.7972 ns/op
WorkloadResult 51: 134217728 op, 172106000.00 ns, 1.2823 ns/op
WorkloadResult 52: 134217728 op, 167961700.00 ns, 1.2514 ns/op
WorkloadResult 53: 134217728 op, 204328000.00 ns, 1.5224 ns/op
WorkloadResult 54: 134217728 op, 189385700.00 ns, 1.4110 ns/op
WorkloadResult 55: 134217728 op, 177178300.00 ns, 1.3201 ns/op
WorkloadResult 56: 134217728 op, 243952000.00 ns, 1.8176 ns/op
WorkloadResult 57: 134217728 op, 175062200.00 ns, 1.3043 ns/op
WorkloadResult 58: 134217728 op, 184922100.00 ns, 1.3778 ns/op
WorkloadResult 59: 134217728 op, 214391800.00 ns, 1.5973 ns/op
WorkloadResult 60: 134217728 op, 203454900.00 ns, 1.5159 ns/op
WorkloadResult 61: 134217728 op, 189993000.00 ns, 1.4156 ns/op
WorkloadResult 62: 134217728 op, 171203600.00 ns, 1.2756 ns/op
WorkloadResult 63: 134217728 op, 175433300.00 ns, 1.3071 ns/op
WorkloadResult 64: 134217728 op, 250433400.00 ns, 1.8659 ns/op
WorkloadResult 65: 134217728 op, 175858100.00 ns, 1.3102 ns/op
WorkloadResult 66: 134217728 op, 209362100.00 ns, 1.5599 ns/op
WorkloadResult 67: 134217728 op, 226197800.00 ns, 1.6853 ns/op
WorkloadResult 68: 134217728 op, 198731700.00 ns, 1.4807 ns/op
WorkloadResult 69: 134217728 op, 251418800.00 ns, 1.8732 ns/op
WorkloadResult 70: 134217728 op, 216789500.00 ns, 1.6152 ns/op
WorkloadResult 71: 134217728 op, 219746700.00 ns, 1.6372 ns/op
WorkloadResult 72: 134217728 op, 194302300.00 ns, 1.4477 ns/op
WorkloadResult 73: 134217728 op, 290250400.00 ns, 2.1625 ns/op
WorkloadResult 74: 134217728 op, 201714600.00 ns, 1.5029 ns/op
WorkloadResult 75: 134217728 op, 195723000.00 ns, 1.4582 ns/op
WorkloadResult 76: 134217728 op, 187646800.00 ns, 1.3981 ns/op
WorkloadResult 77: 134217728 op, 295903800.00 ns, 2.2047 ns/op
WorkloadResult 78: 134217728 op, 164967400.00 ns, 1.2291 ns/op
WorkloadResult 79: 134217728 op, 287644100.00 ns, 2.1431 ns/op
WorkloadResult 80: 134217728 op, 178837900.00 ns, 1.3324 ns/op
WorkloadResult 81: 134217728 op, 184232000.00 ns, 1.3726 ns/op
WorkloadResult 82: 134217728 op, 175291200.00 ns, 1.3060 ns/op
WorkloadResult 83: 134217728 op, 246022200.00 ns, 1.8330 ns/op
WorkloadResult 84: 134217728 op, 169550700.00 ns, 1.2633 ns/op
WorkloadResult 85: 134217728 op, 168298700.00 ns, 1.2539 ns/op
WorkloadResult 86: 134217728 op, 217137500.00 ns, 1.6178 ns/op
WorkloadResult 87: 134217728 op, 224018300.00 ns, 1.6691 ns/op
WorkloadResult 88: 134217728 op, 180200100.00 ns, 1.3426 ns/op
WorkloadResult 89: 134217728 op, 221665300.00 ns, 1.6515 ns/op
WorkloadResult 90: 134217728 op, 207269500.00 ns, 1.5443 ns/op
WorkloadResult 91: 134217728 op, 242576100.00 ns, 1.8073 ns/op
// AfterAll
// Benchmark Process 32572 has exited with code 0.
Mean = 1.537 ns, StdErr = 0.026 ns (1.69%), N = 91, StdDev = 0.248 ns
Min = 1.229 ns, Q1 = 1.337 ns, Median = 1.481 ns, Q3 = 1.665 ns, Max = 2.250 ns
IQR = 0.327 ns, LowerFence = 0.846 ns, UpperFence = 2.156 ns
ConfidenceInterval = [1.448 ns; 1.625 ns] (CI 99.9%), Margin = 0.088 ns (5.75% of Mean)
Skewness = 0.96, Kurtosis = 3.31, MValue = 3
// ** Remained 0 (0.0%) benchmark(s) to run. Estimated finish 2024-02-04 18:28 (0h 0m from now) **
Successfully reverted power plan (GUID: af0ac61f-1554-472d-ba2d-6ed6b3aea947 FriendlyName: 游戏模式)
// ***** BenchmarkRunner: Finish *****
// * Export *
BenchmarkDotNet.Artifacts\results\BenchMark.Calculator-report.csv
BenchmarkDotNet.Artifacts\results\BenchMark.Calculator-report-github.md
BenchmarkDotNet.Artifacts\results\BenchMark.Calculator-report.html
// * Detailed results *
Calculator.DeleSub: .NET 6.0(Runtime=.NET 6.0)
Runtime = .NET 6.0.25 (6.0.2523.51912), X64 RyuJIT AVX2; GC = Concurrent Workstation
Mean = 9.325 ns, StdErr = 0.053 ns (0.57%), N = 23, StdDev = 0.253 ns
Min = 8.893 ns, Q1 = 9.178 ns, Median = 9.326 ns, Q3 = 9.431 ns, Max = 9.861 ns
IQR = 0.254 ns, LowerFence = 8.797 ns, UpperFence = 9.811 ns
ConfidenceInterval = [9.125 ns; 9.525 ns] (CI 99.9%), Margin = 0.200 ns (2.14% of Mean)
Skewness = 0.33, Kurtosis = 2.57, MValue = 2
-------------------- Histogram --------------------
[8.776 ns ; 8.988 ns) | @@
[8.988 ns ; 9.226 ns) | @@@@@
[9.226 ns ; 9.460 ns) | @@@@@@@@@@@@
[9.460 ns ; 9.669 ns) | @
[9.669 ns ; 9.902 ns) | @@@
---------------------------------------------------
Calculator.PtrSub: .NET 6.0(Runtime=.NET 6.0)
Runtime = .NET 6.0.25 (6.0.2523.51912), X64 RyuJIT AVX2; GC = Concurrent Workstation
Mean = 1.537 ns, StdErr = 0.026 ns (1.69%), N = 91, StdDev = 0.248 ns
Min = 1.229 ns, Q1 = 1.337 ns, Median = 1.481 ns, Q3 = 1.665 ns, Max = 2.250 ns
IQR = 0.327 ns, LowerFence = 0.846 ns, UpperFence = 2.156 ns
ConfidenceInterval = [1.448 ns; 1.625 ns] (CI 99.9%), Margin = 0.088 ns (5.75% of Mean)
Skewness = 0.96, Kurtosis = 3.31, MValue = 3
-------------------- Histogram --------------------
[1.157 ns ; 1.251 ns) | @
[1.251 ns ; 1.396 ns) | @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
[1.396 ns ; 1.516 ns) | @@@@@@@@@@@
[1.516 ns ; 1.660 ns) | @@@@@@@@@@@@@@@@@@@
[1.660 ns ; 1.849 ns) | @@@@@@@@@@@@@@@
[1.849 ns ; 1.971 ns) | @@
[1.971 ns ; 2.124 ns) | @@@
[2.124 ns ; 2.269 ns) | @@@@
---------------------------------------------------
// * Summary *
BenchmarkDotNet v0.13.12, Windows 10 (10.0.19045.3930/22H2/2022Update)
12th Gen Intel Core i7-12700H, 1 CPU, 20 logical and 14 physical cores
.NET SDK 8.0.100
[Host] : .NET 6.0.25 (6.0.2523.51912), X64 RyuJIT AVX2
.NET 6.0 : .NET 6.0.25 (6.0.2523.51912), X64 RyuJIT AVX2
Job=.NET 6.0 Runtime=.NET 6.0
| Method | Mean | Error | StdDev |
|-------- |---------:|----------:|----------:|
| DeleSub | 9.325 ns | 0.1999 ns | 0.2529 ns |
| PtrSub | 1.537 ns | 0.0883 ns | 0.2476 ns |
// * Warnings *
MultimodalDistribution
Calculator.PtrSub: .NET 6.0 -> It seems that the distribution can have several modes (mValue = 3)
// * Hints *
Outliers
Calculator.DeleSub: .NET 6.0 -> 3 outliers were removed (12.26 ns..13.07 ns)
Calculator.PtrSub: .NET 6.0 -> 9 outliers were removed (4.55 ns..6.30 ns)
// * Legends *
Mean : Arithmetic mean of all measurements
Error : Half of 99.9% confidence interval
StdDev : Standard deviation of all measurements
1 ns : 1 Nanosecond (0.000000001 sec)
// ***** BenchmarkRunner: End *****
Run time: 00:01:35 (95.94 sec), executed benchmarks: 2
Global total time: 00:01:56 (116.35 sec), executed benchmarks: 2
// * Artifacts cleanup *
Artifacts cleanup is finished
@@ -0,0 +1 @@
// Validating benchmarks:
@@ -0,0 +1 @@
// Validating benchmarks:
@@ -0,0 +1 @@
// Validating benchmarks:
@@ -0,0 +1 @@
// Validating benchmarks:
@@ -0,0 +1 @@
// Validating benchmarks:
@@ -0,0 +1,15 @@
```
BenchmarkDotNet v0.13.12, Windows 10 (10.0.19045.3930/22H2/2022Update)
12th Gen Intel Core i7-12700H, 1 CPU, 20 logical and 14 physical cores
.NET SDK 8.0.100
[Host] : .NET 6.0.25 (6.0.2523.51912), X64 RyuJIT AVX2
.NET 6.0 : .NET 6.0.25 (6.0.2523.51912), X64 RyuJIT AVX2
Job=.NET 6.0 Runtime=.NET 6.0
```
| Method | Mean | Error | StdDev |
|-------- |---------:|----------:|----------:|
| DeleSub | 9.325 ns | 0.1999 ns | 0.2529 ns |
| PtrSub | 1.537 ns | 0.0883 ns | 0.2476 ns |
@@ -0,0 +1,3 @@
Method,Job,AnalyzeLaunchVariance,EvaluateOverhead,MaxAbsoluteError,MaxRelativeError,MinInvokeCount,MinIterationTime,OutlierMode,Affinity,EnvironmentVariables,Jit,LargeAddressAware,Platform,PowerPlanMode,Runtime,AllowVeryLargeObjects,Concurrent,CpuGroups,Force,HeapAffinitizeMask,HeapCount,NoAffinitize,RetainVm,Server,Arguments,BuildConfiguration,Clock,EngineFactory,NuGetReferences,Toolchain,IsMutator,InvocationCount,IterationCount,IterationTime,LaunchCount,MaxIterationCount,MaxWarmupIterationCount,MemoryRandomization,MinIterationCount,MinWarmupIterationCount,RunStrategy,UnrollFactor,WarmupCount,Mean,Error,StdDev
DeleSub,.NET 6.0,False,Default,Default,Default,Default,Default,Default,11111111000000000000,Empty,RyuJit,Default,X64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 6.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,9.325 ns,0.1999 ns,0.2529 ns
PtrSub,.NET 6.0,False,Default,Default,Default,Default,Default,Default,11111111000000000000,Empty,RyuJit,Default,X64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 6.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,Default,16,Default,1.537 ns,0.0883 ns,0.2476 ns
1 Method Job AnalyzeLaunchVariance EvaluateOverhead MaxAbsoluteError MaxRelativeError MinInvokeCount MinIterationTime OutlierMode Affinity EnvironmentVariables Jit LargeAddressAware Platform PowerPlanMode Runtime AllowVeryLargeObjects Concurrent CpuGroups Force HeapAffinitizeMask HeapCount NoAffinitize RetainVm Server Arguments BuildConfiguration Clock EngineFactory NuGetReferences Toolchain IsMutator InvocationCount IterationCount IterationTime LaunchCount MaxIterationCount MaxWarmupIterationCount MemoryRandomization MinIterationCount MinWarmupIterationCount RunStrategy UnrollFactor WarmupCount Mean Error StdDev
2 DeleSub .NET 6.0 False Default Default Default Default Default Default 11111111000000000000 Empty RyuJit Default X64 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c .NET 6.0 False True False True Default Default False False False Default Default Default Default Default Default Default Default Default Default Default Default Default Default Default Default Default 16 Default 9.325 ns 0.1999 ns 0.2529 ns
3 PtrSub .NET 6.0 False Default Default Default Default Default Default 11111111000000000000 Empty RyuJit Default X64 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c .NET 6.0 False True False True Default Default False False False Default Default Default Default Default Default Default Default Default Default Default Default Default Default Default Default Default 16 Default 1.537 ns 0.0883 ns 0.2476 ns
@@ -0,0 +1,32 @@
<!DOCTYPE html>
<html lang='en'>
<head>
<meta charset='utf-8' />
<title>BenchMark.Calculator-20240204-182717</title>
<style type="text/css">
table { border-collapse: collapse; display: block; width: 100%; overflow: auto; }
td, th { padding: 6px 13px; border: 1px solid #ddd; text-align: right; }
tr { background-color: #fff; border-top: 1px solid #ccc; }
tr:nth-child(even) { background: #f8f8f8; }
</style>
</head>
<body>
<pre><code>
BenchmarkDotNet v0.13.12, Windows 10 (10.0.19045.3930/22H2/2022Update)
12th Gen Intel Core i7-12700H, 1 CPU, 20 logical and 14 physical cores
.NET SDK 8.0.100
[Host] : .NET 6.0.25 (6.0.2523.51912), X64 RyuJIT AVX2
.NET 6.0 : .NET 6.0.25 (6.0.2523.51912), X64 RyuJIT AVX2
</code></pre>
<pre><code>Job=.NET 6.0 Runtime=.NET 6.0
</code></pre>
<table>
<thead><tr><th>Method</th><th>Mean</th><th>Error</th><th>StdDev</th>
</tr>
</thead><tbody><tr><td>DeleSub</td><td>9.325 ns</td><td>0.1999 ns</td><td>0.2529 ns</td>
</tr><tr><td>PtrSub</td><td>1.537 ns</td><td>0.0883 ns</td><td>0.2476 ns</td>
</tr></tbody></table>
</body>
</html>
@@ -0,0 +1,50 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<ImportDirectoryBuildProps>false</ImportDirectoryBuildProps>
<ImportDirectoryBuildTargets>false</ImportDirectoryBuildTargets>
<AssemblyTitle>caeea1e9-a0c5-4b7b-94f8-332bfb7832fc</AssemblyTitle>
<TargetFramework>net6.0</TargetFramework>
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
<PlatformTarget>x64</PlatformTarget>
<AssemblyName>caeea1e9-a0c5-4b7b-94f8-332bfb7832fc</AssemblyName>
<OutputType>Exe</OutputType>
<OutputPath>bin\Release</OutputPath>
<TreatWarningsAsErrors>False</TreatWarningsAsErrors>
<!-- Usage of System.Random can cause compilation errors if Code Analysis warnings are treated as Errors -->
<CodeAnalysisTreatWarningsAsErrors>false</CodeAnalysisTreatWarningsAsErrors>
<!-- disabled due to https://github.com/dotnet/roslyn/issues/59421 -->
<DebugSymbols>false</DebugSymbols>
<UseSharedCompilation>false</UseSharedCompilation>
<CodeAnalysisRuleSet></CodeAnalysisRuleSet>
<RunAnalyzers>false</RunAnalyzers>
<Deterministic>true</Deterministic>
<!-- needed for custom build configurations (only "Release" builds are optimized by default) -->
<Optimize Condition=" '$(Configuration)' != 'Debug' ">true</Optimize>
<!-- we set LangVersion after any copied settings which might contain LangVersion copied from the benchmarks project -->
<LangVersion Condition="'$(LangVersion)' == '' Or ($([System.Char]::IsDigit('$(LangVersion)', 0)) And '$(LangVersion)' &lt; '7.3')">latest</LangVersion>
<AppendTargetFrameworkToOutputPath>true</AppendTargetFrameworkToOutputPath>
<!-- fix for NETSDK1150: https://docs.microsoft.com/en-us/dotnet/core/compatibility/sdk/5.0/referencing-executable-generates-error -->
<ValidateExecutableReferencesMatchSelfContained>false</ValidateExecutableReferencesMatchSelfContained>
<StartupObject>BenchmarkDotNet.Autogenerated.UniqueProgramName</StartupObject>
</PropertyGroup>
<ItemGroup>
<Compile Include="caeea1e9-a0c5-4b7b-94f8-332bfb7832fc.notcs" Exclude="bin\**;obj\**;**\*.xproj;packages\**" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="D:\NitloadIndustry\研究项目\1-Flagship\TH2020\ProjectFile\源代码\BenchMark\BenchMark.csproj" />
</ItemGroup>
<!-- Begin copied settings from benchmarks project -->
<!-- End copied settings -->
<PropertyGroup>
<ServerGarbageCollection>false</ServerGarbageCollection>
<ConcurrentGarbageCollection>true</ConcurrentGarbageCollection>
</PropertyGroup>
</Project>
@@ -0,0 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<runtime>
<gcConcurrent enabled="true" />
<gcServer enabled="false" />
</runtime>
</configuration>
@@ -0,0 +1,2 @@
call dotnet restore /p:UseSharedCompilation=false /p:BuildInParallel=false /m:1 /p:Deterministic=true /p:Optimize=true
call dotnet build -c Release /p:UseSharedCompilation=false /p:BuildInParallel=false /m:1 /p:Deterministic=true /p:Optimize=true
@@ -0,0 +1,517 @@
// <auto-generated />
// this file must not be importing any namespaces
// we should use full names everywhere to avoid any potential naming conflicts, example: #1007, #778
// the namespace name must be in sync with WindowsDisassembler.BuildArguments
namespace BenchmarkDotNet.Autogenerated
{
public class UniqueProgramName // we need different name than typical "Program" to avoid problems with referencing "Program" types from benchmarked code, #691
{
public static System.Int32 Main(System.String[] args)
{
// this method MUST NOT have any dependencies to BenchmarkDotNet and any other external dlls! (CoreRT is exception from this rule)
// otherwise if LINQPad's shadow copy is enabled, we will not register for AssemblyLoading event
// before .NET Framework tries to load it for this method
#if NETFRAMEWORK
using(new DirtyAssemblyResolveHelper())
#endif
return AfterAssemblyLoadingAttached(args);
}
private static System.Int32 AfterAssemblyLoadingAttached(System.String[] args)
{
BenchmarkDotNet.Engines.IHost host; // this variable name is used by CodeGenerator.GetCoreRtSwitch, do NOT change it
if (BenchmarkDotNet.Engines.AnonymousPipesHost.TryGetFileHandles(args, out System.String writeHandle, out System.String readHandle))
host = new BenchmarkDotNet.Engines.AnonymousPipesHost(writeHandle, readHandle);
else
host = new BenchmarkDotNet.Engines.NoAcknowledgementConsoleHost();
// the first thing to do is to let diagnosers hook in before anything happens
// so all jit-related diagnosers can catch first jit compilation!
BenchmarkDotNet.Engines.HostExtensions.BeforeAnythingElse(host);
try
{
// we are not using Runnable here in any direct way in order to avoid strong dependency Main<=>Runnable
// which could cause the jitting/assembly loading to happen before we do anything
// we have some jitting diagnosers and we want them to catch all the informations!!
// this variable name is used by CodeGenerator.GetCoreRtSwitch, do NOT change it
System.String benchmarkName = System.Linq.Enumerable.FirstOrDefault(System.Linq.Enumerable.Skip(System.Linq.Enumerable.SkipWhile(args, arg => arg != "--benchmarkName"), 1)) ?? "not provided";
System.Int32 id = args.Length > 0
? System.Int32.Parse(args[args.Length - 1]) // this variable name is used by CodeGenerator.GetCoreRtSwitch, do NOT change it
: 0; // used when re-using generated exe without BDN (typically to repro a bug)
if (args.Length == 0)
{
host.WriteLine("You have not specified benchmark id (an integer) so the first benchmark will be executed.");
}
#if NATIVEAOT
#else
System.Type type = typeof(BenchmarkDotNet.Autogenerated.UniqueProgramName).Assembly.GetType($"BenchmarkDotNet.Autogenerated.Runnable_{id}");
type.GetMethod("Run", System.Reflection.BindingFlags.Public | System.Reflection.BindingFlags.Static).Invoke(null, new System.Object[] { host, benchmarkName });
#endif
return 0;
}
catch (System.Exception oom) when (oom is System.OutOfMemoryException || oom is System.Reflection.TargetInvocationException reflection && reflection.InnerException is System.OutOfMemoryException)
{
host.WriteLine();
host.WriteLine("OutOfMemoryException!");
host.WriteLine("BenchmarkDotNet continues to run additional iterations until desired accuracy level is achieved. It's possible only if the benchmark method doesn't have any side-effects.");
host.WriteLine("If your benchmark allocates memory and keeps it alive, you are creating a memory leak.");
host.WriteLine("You should redesign your benchmark and remove the side-effects. You can use `OperationsPerInvoke`, `IterationSetup` and `IterationCleanup` to do that.");
host.WriteLine();
host.WriteLine(oom.ToString());
return -1;
}
catch(System.Exception ex)
{
host.WriteLine();
host.WriteLine(ex.ToString());
return -1;
}
finally
{
BenchmarkDotNet.Engines.HostExtensions.AfterAll(host);
host.Dispose();
}
}
}
#if NETFRAMEWORK
internal class DirtyAssemblyResolveHelper : System.IDisposable
{
internal DirtyAssemblyResolveHelper() => System.AppDomain.CurrentDomain.AssemblyResolve += HelpTheFrameworkToResolveTheAssembly;
public void Dispose() => System.AppDomain.CurrentDomain.AssemblyResolve -= HelpTheFrameworkToResolveTheAssembly;
/// <summary>
/// according to https://msdn.microsoft.com/en-us/library/ff527268(v=vs.110).aspx
/// "the handler is invoked whenever the runtime fails to bind to an assembly by name."
/// </summary>
/// <returns>not null when we find it manually, null when can't help</returns>
private System.Reflection.Assembly HelpTheFrameworkToResolveTheAssembly(System.Object sender, System.ResolveEventArgs args)
{
#if SHADOWCOPY // used for LINQPad
const System.String shadowCopyFolderPath = @"";
System.String guessedPath = System.IO.Path.Combine(shadowCopyFolderPath, $"{new System.Reflection.AssemblyName(args.Name).Name}.dll");
return System.IO.File.Exists(guessedPath) ? System.Reflection.Assembly.LoadFrom(guessedPath) : null;
#else
System.Reflection.AssemblyName fullName = new System.Reflection.AssemblyName(args.Name);
System.String simpleName = fullName.Name;
System.String guessedPath = System.IO.Path.Combine(System.AppDomain.CurrentDomain.BaseDirectory, $"{simpleName}.dll");
if (!System.IO.File.Exists(guessedPath))
{
System.Console.WriteLine($"// Wrong assembly binding redirects for {args.Name}.");
return null; // we can't help, and we also don't call Assembly.Load which if fails comes back here, creates endless loop and causes StackOverflow
}
// the file is right there, but has most probably different version and there is no assembly binding redirect or there is a wrong one...
// so we just load it and ignore the version mismatch
// we warn the user about that, in case some Super User want to be aware of that
System.Console.WriteLine($"// Wrong assembly binding redirects for {simpleName}, loading it from disk anyway.");
return System.Reflection.Assembly.LoadFrom(guessedPath);
#endif // SHADOWCOPY
}
}
#endif // NETFRAMEWORK
// the type name must be in sync with WindowsDisassembler.BuildArguments
public unsafe class Runnable_0 : global::BenchMark.Calculator
{
public static void Run(BenchmarkDotNet.Engines.IHost host, System.String benchmarkName)
{
BenchmarkDotNet.Autogenerated.Runnable_0 instance = new BenchmarkDotNet.Autogenerated.Runnable_0(); // do NOT change name "instance" (used in SmartParamameter)
host.WriteLine();
foreach (System.String infoLine in BenchmarkDotNet.Environments.BenchmarkEnvironmentInfo.GetCurrent().ToFormattedString())
{
host.WriteLine($"// {infoLine}");
}
BenchmarkDotNet.Jobs.Job job = new BenchmarkDotNet.Jobs.Job(); // use full name to avoid naming conflicts, #778
BenchmarkDotNet.Characteristics.CharacteristicObject.IdCharacteristic[job] = ".NET 6.0";
job.Freeze();
host.WriteLine($"// Job: {job.DisplayInfo}");
host.WriteLine();
System.Collections.Generic.IEnumerable<BenchmarkDotNet.Validators.ValidationError> errors = BenchmarkDotNet.Environments.BenchmarkEnvironmentInfo.Validate(job);
if (BenchmarkDotNet.Validators.ValidationErrorReporter.ReportIfAny(errors, host))
return;
BenchmarkDotNet.Engines.EngineParameters engineParameters = new BenchmarkDotNet.Engines.EngineParameters()
{
Host = host,
WorkloadActionUnroll = instance.WorkloadActionUnroll,
WorkloadActionNoUnroll = instance.WorkloadActionNoUnroll,
Dummy1Action = instance.Dummy1,
Dummy2Action = instance.Dummy2,
Dummy3Action = instance.Dummy3,
OverheadActionNoUnroll = instance.OverheadActionNoUnroll,
OverheadActionUnroll = instance.OverheadActionUnroll,
GlobalSetupAction = instance.globalSetupAction,
GlobalCleanupAction = instance.globalCleanupAction,
IterationSetupAction = instance.iterationSetupAction,
IterationCleanupAction = instance.iterationCleanupAction,
TargetJob = job,
OperationsPerInvoke = 1,
MeasureExtraStats = false,
BenchmarkName = benchmarkName
};
using (BenchmarkDotNet.Engines.IEngine engine = new BenchmarkDotNet.Engines.EngineFactory().CreateReadyToRun(engineParameters))
{
BenchmarkDotNet.Engines.RunResults results = engine.Run();
host.ReportResults(results); // printing costs memory, do this after runs
instance.__TrickTheJIT__(); // compile the method for disassembler, but without actual run of the benchmark ;)
}
}
public delegate void OverheadDelegate();
public delegate void WorkloadDelegate();
public Runnable_0()
{
globalSetupAction = () => { };
globalCleanupAction = () => { };
iterationSetupAction = () => { };
iterationCleanupAction = () => { };
overheadDelegate = __Overhead;
workloadDelegate = DeleSub;
}
private System.Action globalSetupAction;
private System.Action globalCleanupAction;
private System.Action iterationSetupAction;
private System.Action iterationCleanupAction;
private BenchmarkDotNet.Autogenerated.Runnable_0.OverheadDelegate overheadDelegate;
private BenchmarkDotNet.Autogenerated.Runnable_0.WorkloadDelegate workloadDelegate;
// this method is used only for the disassembly diagnoser purposes
// the goal is to get this and the benchmarked method jitted, but without executing the benchmarked method itself
public System.Int32 NotEleven;
[System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoOptimization | System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]
public void __TrickTheJIT__()
{
NotEleven = new System.Random(123).Next(0, 10);
__ForDisassemblyDiagnoser__();
}
private System.Int32 dummyVar;
[System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]
private void Dummy1()
{
dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;
}
[System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]
private void Dummy2()
{
dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;
}
[System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]
private void Dummy3()
{
dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;
}
private void __Overhead() // __ is to avoid possible name conflict
{
}
[System.Runtime.CompilerServices.MethodImpl(BenchmarkDotNet.Portability.CodeGenHelper.AggressiveOptimizationOption)]
private void OverheadActionUnroll(System.Int64 invokeCount)
{
for (System.Int64 i = 0; i < invokeCount; i++)
{
overheadDelegate();
overheadDelegate();
overheadDelegate();
overheadDelegate();
overheadDelegate();
overheadDelegate();
overheadDelegate();
overheadDelegate();
overheadDelegate();
overheadDelegate();
overheadDelegate();
overheadDelegate();
overheadDelegate();
overheadDelegate();
overheadDelegate();
overheadDelegate();
}
}
[System.Runtime.CompilerServices.MethodImpl(BenchmarkDotNet.Portability.CodeGenHelper.AggressiveOptimizationOption)]
private void OverheadActionNoUnroll(System.Int64 invokeCount)
{
for (System.Int64 i = 0; i < invokeCount; i++)
{
overheadDelegate();
}
}
[System.Runtime.CompilerServices.MethodImpl(BenchmarkDotNet.Portability.CodeGenHelper.AggressiveOptimizationOption)]
private void WorkloadActionUnroll(System.Int64 invokeCount)
{
for (System.Int64 i = 0; i < invokeCount; i++)
{
workloadDelegate();
workloadDelegate();
workloadDelegate();
workloadDelegate();
workloadDelegate();
workloadDelegate();
workloadDelegate();
workloadDelegate();
workloadDelegate();
workloadDelegate();
workloadDelegate();
workloadDelegate();
workloadDelegate();
workloadDelegate();
workloadDelegate();
workloadDelegate();
}
}
[System.Runtime.CompilerServices.MethodImpl(BenchmarkDotNet.Portability.CodeGenHelper.AggressiveOptimizationOption)]
private void WorkloadActionNoUnroll(System.Int64 invokeCount)
{
for (System.Int64 i = 0; i < invokeCount; i++)
{
workloadDelegate();
}
}
[System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoOptimization | System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]
public void __ForDisassemblyDiagnoser__()
{
if (NotEleven == 11)
{
DeleSub();
}
}
}
// the type name must be in sync with WindowsDisassembler.BuildArguments
public unsafe class Runnable_1 : global::BenchMark.Calculator
{
public static void Run(BenchmarkDotNet.Engines.IHost host, System.String benchmarkName)
{
BenchmarkDotNet.Autogenerated.Runnable_1 instance = new BenchmarkDotNet.Autogenerated.Runnable_1(); // do NOT change name "instance" (used in SmartParamameter)
host.WriteLine();
foreach (System.String infoLine in BenchmarkDotNet.Environments.BenchmarkEnvironmentInfo.GetCurrent().ToFormattedString())
{
host.WriteLine($"// {infoLine}");
}
BenchmarkDotNet.Jobs.Job job = new BenchmarkDotNet.Jobs.Job(); // use full name to avoid naming conflicts, #778
BenchmarkDotNet.Characteristics.CharacteristicObject.IdCharacteristic[job] = ".NET 6.0";
job.Freeze();
host.WriteLine($"// Job: {job.DisplayInfo}");
host.WriteLine();
System.Collections.Generic.IEnumerable<BenchmarkDotNet.Validators.ValidationError> errors = BenchmarkDotNet.Environments.BenchmarkEnvironmentInfo.Validate(job);
if (BenchmarkDotNet.Validators.ValidationErrorReporter.ReportIfAny(errors, host))
return;
BenchmarkDotNet.Engines.EngineParameters engineParameters = new BenchmarkDotNet.Engines.EngineParameters()
{
Host = host,
WorkloadActionUnroll = instance.WorkloadActionUnroll,
WorkloadActionNoUnroll = instance.WorkloadActionNoUnroll,
Dummy1Action = instance.Dummy1,
Dummy2Action = instance.Dummy2,
Dummy3Action = instance.Dummy3,
OverheadActionNoUnroll = instance.OverheadActionNoUnroll,
OverheadActionUnroll = instance.OverheadActionUnroll,
GlobalSetupAction = instance.globalSetupAction,
GlobalCleanupAction = instance.globalCleanupAction,
IterationSetupAction = instance.iterationSetupAction,
IterationCleanupAction = instance.iterationCleanupAction,
TargetJob = job,
OperationsPerInvoke = 1,
MeasureExtraStats = false,
BenchmarkName = benchmarkName
};
using (BenchmarkDotNet.Engines.IEngine engine = new BenchmarkDotNet.Engines.EngineFactory().CreateReadyToRun(engineParameters))
{
BenchmarkDotNet.Engines.RunResults results = engine.Run();
host.ReportResults(results); // printing costs memory, do this after runs
instance.__TrickTheJIT__(); // compile the method for disassembler, but without actual run of the benchmark ;)
}
}
public delegate void OverheadDelegate();
public delegate void WorkloadDelegate();
public Runnable_1()
{
globalSetupAction = () => { };
globalCleanupAction = () => { };
iterationSetupAction = () => { };
iterationCleanupAction = () => { };
overheadDelegate = __Overhead;
workloadDelegate = PtrSub;
}
private System.Action globalSetupAction;
private System.Action globalCleanupAction;
private System.Action iterationSetupAction;
private System.Action iterationCleanupAction;
private BenchmarkDotNet.Autogenerated.Runnable_1.OverheadDelegate overheadDelegate;
private BenchmarkDotNet.Autogenerated.Runnable_1.WorkloadDelegate workloadDelegate;
// this method is used only for the disassembly diagnoser purposes
// the goal is to get this and the benchmarked method jitted, but without executing the benchmarked method itself
public System.Int32 NotEleven;
[System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoOptimization | System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]
public void __TrickTheJIT__()
{
NotEleven = new System.Random(123).Next(0, 10);
__ForDisassemblyDiagnoser__();
}
private System.Int32 dummyVar;
[System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]
private void Dummy1()
{
dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;
}
[System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]
private void Dummy2()
{
dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;
}
[System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]
private void Dummy3()
{
dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;dummyVar++;
}
private void __Overhead() // __ is to avoid possible name conflict
{
}
[System.Runtime.CompilerServices.MethodImpl(BenchmarkDotNet.Portability.CodeGenHelper.AggressiveOptimizationOption)]
private void OverheadActionUnroll(System.Int64 invokeCount)
{
for (System.Int64 i = 0; i < invokeCount; i++)
{
overheadDelegate();
overheadDelegate();
overheadDelegate();
overheadDelegate();
overheadDelegate();
overheadDelegate();
overheadDelegate();
overheadDelegate();
overheadDelegate();
overheadDelegate();
overheadDelegate();
overheadDelegate();
overheadDelegate();
overheadDelegate();
overheadDelegate();
overheadDelegate();
}
}
[System.Runtime.CompilerServices.MethodImpl(BenchmarkDotNet.Portability.CodeGenHelper.AggressiveOptimizationOption)]
private void OverheadActionNoUnroll(System.Int64 invokeCount)
{
for (System.Int64 i = 0; i < invokeCount; i++)
{
overheadDelegate();
}
}
[System.Runtime.CompilerServices.MethodImpl(BenchmarkDotNet.Portability.CodeGenHelper.AggressiveOptimizationOption)]
private void WorkloadActionUnroll(System.Int64 invokeCount)
{
for (System.Int64 i = 0; i < invokeCount; i++)
{
workloadDelegate();
workloadDelegate();
workloadDelegate();
workloadDelegate();
workloadDelegate();
workloadDelegate();
workloadDelegate();
workloadDelegate();
workloadDelegate();
workloadDelegate();
workloadDelegate();
workloadDelegate();
workloadDelegate();
workloadDelegate();
workloadDelegate();
workloadDelegate();
}
}
[System.Runtime.CompilerServices.MethodImpl(BenchmarkDotNet.Portability.CodeGenHelper.AggressiveOptimizationOption)]
private void WorkloadActionNoUnroll(System.Int64 invokeCount)
{
for (System.Int64 i = 0; i < invokeCount; i++)
{
workloadDelegate();
}
}
[System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoOptimization | System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]
public void __ForDisassemblyDiagnoser__()
{
if (NotEleven == 11)
{
PtrSub();
}
}
}
}
@@ -0,0 +1,138 @@
{
"format": 1,
"restore": {
"D:\\NitloadIndustry\\研究项目\\1-Flagship\\TH2020\\ProjectFile\\源代码\\BenchMark\\bin\\Release\\net6.0\\caeea1e9-a0c5-4b7b-94f8-332bfb7832fc\\BenchmarkDotNet.Autogenerated.csproj": {}
},
"projects": {
"D:\\NitloadIndustry\\研究项目\\1-Flagship\\TH2020\\ProjectFile\\源代码\\BenchMark\\BenchMark.csproj": {
"version": "1.0.0",
"restore": {
"projectUniqueName": "D:\\NitloadIndustry\\研究项目\\1-Flagship\\TH2020\\ProjectFile\\源代码\\BenchMark\\BenchMark.csproj",
"projectName": "BenchMark",
"projectPath": "D:\\NitloadIndustry\\研究项目\\1-Flagship\\TH2020\\ProjectFile\\源代码\\BenchMark\\BenchMark.csproj",
"packagesPath": "C:\\Users\\Nitlo\\.nuget\\packages\\",
"outputPath": "D:\\NitloadIndustry\\研究项目\\1-Flagship\\TH2020\\ProjectFile\\源代码\\BenchMark\\obj\\",
"projectStyle": "PackageReference",
"fallbackFolders": [
"C:\\Program Files (x86)\\Microsoft Visual Studio\\Shared\\NuGetPackages"
],
"configFilePaths": [
"C:\\Users\\Nitlo\\AppData\\Roaming\\NuGet\\NuGet.Config",
"C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.FallbackLocation.config",
"C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.Offline.config"
],
"originalTargetFrameworks": [
"net6.0"
],
"sources": {
"C:\\Program Files (x86)\\Microsoft SDKs\\NuGetPackages\\": {},
"C:\\Program Files\\dotnet\\library-packs": {},
"https://api.nuget.org/v3/index.json": {}
},
"frameworks": {
"net6.0": {
"targetAlias": "net6.0",
"projectReferences": {}
}
},
"warningProperties": {
"warnAsError": [
"NU1605"
]
}
},
"frameworks": {
"net6.0": {
"targetAlias": "net6.0",
"dependencies": {
"BenchmarkDotNet": {
"target": "Package",
"version": "[0.13.12, )"
}
},
"imports": [
"net461",
"net462",
"net47",
"net471",
"net472",
"net48",
"net481"
],
"assetTargetFallback": true,
"warn": true,
"frameworkReferences": {
"Microsoft.NETCore.App": {
"privateAssets": "all"
}
},
"runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\8.0.100\\RuntimeIdentifierGraph.json"
}
}
},
"D:\\NitloadIndustry\\研究项目\\1-Flagship\\TH2020\\ProjectFile\\源代码\\BenchMark\\bin\\Release\\net6.0\\caeea1e9-a0c5-4b7b-94f8-332bfb7832fc\\BenchmarkDotNet.Autogenerated.csproj": {
"version": "1.0.0",
"restore": {
"projectUniqueName": "D:\\NitloadIndustry\\研究项目\\1-Flagship\\TH2020\\ProjectFile\\源代码\\BenchMark\\bin\\Release\\net6.0\\caeea1e9-a0c5-4b7b-94f8-332bfb7832fc\\BenchmarkDotNet.Autogenerated.csproj",
"projectName": "caeea1e9-a0c5-4b7b-94f8-332bfb7832fc",
"projectPath": "D:\\NitloadIndustry\\研究项目\\1-Flagship\\TH2020\\ProjectFile\\源代码\\BenchMark\\bin\\Release\\net6.0\\caeea1e9-a0c5-4b7b-94f8-332bfb7832fc\\BenchmarkDotNet.Autogenerated.csproj",
"packagesPath": "C:\\Users\\Nitlo\\.nuget\\packages\\",
"outputPath": "D:\\NitloadIndustry\\研究项目\\1-Flagship\\TH2020\\ProjectFile\\源代码\\BenchMark\\bin\\Release\\net6.0\\caeea1e9-a0c5-4b7b-94f8-332bfb7832fc\\obj\\",
"projectStyle": "PackageReference",
"fallbackFolders": [
"C:\\Program Files (x86)\\Microsoft Visual Studio\\Shared\\NuGetPackages"
],
"configFilePaths": [
"C:\\Users\\Nitlo\\AppData\\Roaming\\NuGet\\NuGet.Config",
"C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.FallbackLocation.config",
"C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.Offline.config"
],
"originalTargetFrameworks": [
"net6.0"
],
"sources": {
"C:\\Program Files (x86)\\Microsoft SDKs\\NuGetPackages\\": {},
"C:\\Program Files\\dotnet\\library-packs": {},
"https://api.nuget.org/v3/index.json": {}
},
"frameworks": {
"net6.0": {
"targetAlias": "net6.0",
"projectReferences": {
"D:\\NitloadIndustry\\研究项目\\1-Flagship\\TH2020\\ProjectFile\\源代码\\BenchMark\\BenchMark.csproj": {
"projectPath": "D:\\NitloadIndustry\\研究项目\\1-Flagship\\TH2020\\ProjectFile\\源代码\\BenchMark\\BenchMark.csproj"
}
}
}
},
"warningProperties": {
"warnAsError": [
"NU1605"
]
}
},
"frameworks": {
"net6.0": {
"targetAlias": "net6.0",
"imports": [
"net461",
"net462",
"net47",
"net471",
"net472",
"net48",
"net481"
],
"assetTargetFallback": true,
"warn": true,
"frameworkReferences": {
"Microsoft.NETCore.App": {
"privateAssets": "all"
}
},
"runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\8.0.100\\RuntimeIdentifierGraph.json"
}
}
}
}
}
@@ -0,0 +1,22 @@
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
<RestoreSuccess Condition=" '$(RestoreSuccess)' == '' ">True</RestoreSuccess>
<RestoreTool Condition=" '$(RestoreTool)' == '' ">NuGet</RestoreTool>
<ProjectAssetsFile Condition=" '$(ProjectAssetsFile)' == '' ">$(MSBuildThisFileDirectory)project.assets.json</ProjectAssetsFile>
<NuGetPackageRoot Condition=" '$(NuGetPackageRoot)' == '' ">$(UserProfile)\.nuget\packages\</NuGetPackageRoot>
<NuGetPackageFolders Condition=" '$(NuGetPackageFolders)' == '' ">C:\Users\Nitlo\.nuget\packages\;C:\Program Files (x86)\Microsoft Visual Studio\Shared\NuGetPackages</NuGetPackageFolders>
<NuGetProjectStyle Condition=" '$(NuGetProjectStyle)' == '' ">PackageReference</NuGetProjectStyle>
<NuGetToolVersion Condition=" '$(NuGetToolVersion)' == '' ">6.8.0</NuGetToolVersion>
</PropertyGroup>
<ItemGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
<SourceRoot Include="C:\Users\Nitlo\.nuget\packages\" />
<SourceRoot Include="C:\Program Files (x86)\Microsoft Visual Studio\Shared\NuGetPackages\" />
</ItemGroup>
<ImportGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
<Import Project="$(NuGetPackageRoot)microsoft.diagnostics.tracing.traceevent\3.0.2\buildTransitive\Microsoft.Diagnostics.Tracing.TraceEvent.props" Condition="Exists('$(NuGetPackageRoot)microsoft.diagnostics.tracing.traceevent\3.0.2\buildTransitive\Microsoft.Diagnostics.Tracing.TraceEvent.props')" />
</ImportGroup>
<PropertyGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
<PkgMicrosoft_CodeAnalysis_Analyzers Condition=" '$(PkgMicrosoft_CodeAnalysis_Analyzers)' == '' ">C:\Users\Nitlo\.nuget\packages\microsoft.codeanalysis.analyzers\3.3.3</PkgMicrosoft_CodeAnalysis_Analyzers>
</PropertyGroup>
</Project>
@@ -0,0 +1,2 @@
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" />
@@ -0,0 +1,43 @@
{
"version": 2,
"dgSpecHash": "JyyNz9xgAZIpzRc13RAbEUGxjcSKibLDy9q9eXO63q5UbwkyGB19MUWoACwpCTHPAf5GHIE6gEAsuegp/R7c4w==",
"success": true,
"projectFilePath": "D:\\NitloadIndustry\\研究项目\\1-Flagship\\TH2020\\ProjectFile\\源代码\\BenchMark\\bin\\Release\\net6.0\\caeea1e9-a0c5-4b7b-94f8-332bfb7832fc\\BenchmarkDotNet.Autogenerated.csproj",
"expectedPackageFiles": [
"C:\\Users\\Nitlo\\.nuget\\packages\\benchmarkdotnet\\0.13.12\\benchmarkdotnet.0.13.12.nupkg.sha512",
"C:\\Users\\Nitlo\\.nuget\\packages\\benchmarkdotnet.annotations\\0.13.12\\benchmarkdotnet.annotations.0.13.12.nupkg.sha512",
"C:\\Users\\Nitlo\\.nuget\\packages\\commandlineparser\\2.9.1\\commandlineparser.2.9.1.nupkg.sha512",
"C:\\Users\\Nitlo\\.nuget\\packages\\gee.external.capstone\\2.3.0\\gee.external.capstone.2.3.0.nupkg.sha512",
"C:\\Users\\Nitlo\\.nuget\\packages\\iced\\1.17.0\\iced.1.17.0.nupkg.sha512",
"C:\\Users\\Nitlo\\.nuget\\packages\\microsoft.bcl.asyncinterfaces\\1.1.0\\microsoft.bcl.asyncinterfaces.1.1.0.nupkg.sha512",
"C:\\Users\\Nitlo\\.nuget\\packages\\microsoft.codeanalysis.analyzers\\3.3.3\\microsoft.codeanalysis.analyzers.3.3.3.nupkg.sha512",
"C:\\Users\\Nitlo\\.nuget\\packages\\microsoft.codeanalysis.common\\4.1.0\\microsoft.codeanalysis.common.4.1.0.nupkg.sha512",
"C:\\Users\\Nitlo\\.nuget\\packages\\microsoft.codeanalysis.csharp\\4.1.0\\microsoft.codeanalysis.csharp.4.1.0.nupkg.sha512",
"C:\\Users\\Nitlo\\.nuget\\packages\\microsoft.diagnostics.netcore.client\\0.2.251802\\microsoft.diagnostics.netcore.client.0.2.251802.nupkg.sha512",
"C:\\Users\\Nitlo\\.nuget\\packages\\microsoft.diagnostics.runtime\\2.2.332302\\microsoft.diagnostics.runtime.2.2.332302.nupkg.sha512",
"C:\\Users\\Nitlo\\.nuget\\packages\\microsoft.diagnostics.tracing.traceevent\\3.0.2\\microsoft.diagnostics.tracing.traceevent.3.0.2.nupkg.sha512",
"C:\\Users\\Nitlo\\.nuget\\packages\\microsoft.dotnet.platformabstractions\\3.1.6\\microsoft.dotnet.platformabstractions.3.1.6.nupkg.sha512",
"C:\\Users\\Nitlo\\.nuget\\packages\\microsoft.extensions.configuration\\2.1.1\\microsoft.extensions.configuration.2.1.1.nupkg.sha512",
"C:\\Users\\Nitlo\\.nuget\\packages\\microsoft.extensions.configuration.abstractions\\2.1.1\\microsoft.extensions.configuration.abstractions.2.1.1.nupkg.sha512",
"C:\\Users\\Nitlo\\.nuget\\packages\\microsoft.extensions.configuration.binder\\2.1.1\\microsoft.extensions.configuration.binder.2.1.1.nupkg.sha512",
"C:\\Users\\Nitlo\\.nuget\\packages\\microsoft.extensions.dependencyinjection.abstractions\\2.1.1\\microsoft.extensions.dependencyinjection.abstractions.2.1.1.nupkg.sha512",
"C:\\Users\\Nitlo\\.nuget\\packages\\microsoft.extensions.logging\\2.1.1\\microsoft.extensions.logging.2.1.1.nupkg.sha512",
"C:\\Users\\Nitlo\\.nuget\\packages\\microsoft.extensions.logging.abstractions\\2.1.1\\microsoft.extensions.logging.abstractions.2.1.1.nupkg.sha512",
"C:\\Users\\Nitlo\\.nuget\\packages\\microsoft.extensions.options\\2.1.1\\microsoft.extensions.options.2.1.1.nupkg.sha512",
"C:\\Users\\Nitlo\\.nuget\\packages\\microsoft.extensions.primitives\\2.1.1\\microsoft.extensions.primitives.2.1.1.nupkg.sha512",
"C:\\Users\\Nitlo\\.nuget\\packages\\microsoft.netcore.platforms\\5.0.0\\microsoft.netcore.platforms.5.0.0.nupkg.sha512",
"C:\\Users\\Nitlo\\.nuget\\packages\\microsoft.win32.registry\\5.0.0\\microsoft.win32.registry.5.0.0.nupkg.sha512",
"C:\\Users\\Nitlo\\.nuget\\packages\\perfolizer\\0.2.1\\perfolizer.0.2.1.nupkg.sha512",
"C:\\Users\\Nitlo\\.nuget\\packages\\system.codedom\\5.0.0\\system.codedom.5.0.0.nupkg.sha512",
"C:\\Users\\Nitlo\\.nuget\\packages\\system.collections.immutable\\5.0.0\\system.collections.immutable.5.0.0.nupkg.sha512",
"C:\\Users\\Nitlo\\.nuget\\packages\\system.management\\5.0.0\\system.management.5.0.0.nupkg.sha512",
"C:\\Users\\Nitlo\\.nuget\\packages\\system.memory\\4.5.4\\system.memory.4.5.4.nupkg.sha512",
"C:\\Users\\Nitlo\\.nuget\\packages\\system.reflection.metadata\\5.0.0\\system.reflection.metadata.5.0.0.nupkg.sha512",
"C:\\Users\\Nitlo\\.nuget\\packages\\system.runtime.compilerservices.unsafe\\5.0.0\\system.runtime.compilerservices.unsafe.5.0.0.nupkg.sha512",
"C:\\Users\\Nitlo\\.nuget\\packages\\system.security.accesscontrol\\5.0.0\\system.security.accesscontrol.5.0.0.nupkg.sha512",
"C:\\Users\\Nitlo\\.nuget\\packages\\system.security.principal.windows\\5.0.0\\system.security.principal.windows.5.0.0.nupkg.sha512",
"C:\\Users\\Nitlo\\.nuget\\packages\\system.text.encoding.codepages\\4.5.1\\system.text.encoding.codepages.4.5.1.nupkg.sha512",
"C:\\Users\\Nitlo\\.nuget\\packages\\system.threading.tasks.extensions\\4.5.4\\system.threading.tasks.extensions.4.5.4.nupkg.sha512"
],
"logs": []
}