SDK: .NET 8, 9, 10 side-by-side, .NET 11 preview — только для дизасма (BenchmarkDotNet 0.15.8 его не собирает, dotnet/BenchmarkDotNet#3017).
dotnet run -c Release -f net10.0 # полный прогон: LinqSumBench + LinqSumWidthBench
dotnet run -c Release -f net10.0 -- width # только LinqSumWidthBench (минуты) — или run_width.bat из корня
Если GlobalSetup упал с "X != Y" — это не ошибка прогона, это методы разошлись в ответе. Ничего не мерять, разбираться.
Disasm\snap.bat # Windows: обычный проход + *_vt512.txt
Disasm\snap_pref512.bat # Windows: *_pref512.txt — DOTNET_PreferredVectorBitWidth=512
Disasm/snap.sh # Linux-вариант snap.bat
Всё одним снятием: перед повтором старые disasm_*.txt удалить, старые и новые дампы не смешивать.
bin\Release\net10.0\Disasm.exe overflow
Контрольный запуск со скалярным путём:
set DOTNET_EnableHWIntrinsic=0
bin\Release\net10.0\Disasm.exe overflow
set DOTNET_EnableHWIntrinsic=
Results/Comp_N/— содержимоеBenchmarkDotNet.Artifacts/resultsполного прогона.Results/Comp_N/Width512/— содержимое results прогона-- width.Disasm/Listings_Comp_N/— всеdisasm_*.txtмашины.- Нумерация машин — как в таблице статьи.