Бенчмарк поиска по строке в .NET: цикл против BCL, свой SIMD, AVX-512 vs AVX2. 4 машины, дизасм, воспроизводимо
-
Updated
Jul 15, 2026 - C#
Бенчмарк поиска по строке в .NET: цикл против BCL, свой SIMD, AVX-512 vs AVX2. 4 машины, дизасм, воспроизводимо
Пять мест в исходниках .NET, где написанный код не попадает в машинный. Замеры на BenchmarkDotNet, .NET 8/9/10, четыре машины, со снятием машинного кода.
Проверки границ массива в RyuJIT: дизасм + бенчмарки на .NET 8/9/10/11
Деление и остаток от одной константы: на int компилятор считает деление один раз, на uint дважды. Замеры на трёх машинах, .NET 8, 9 и 10, с листингами машинного кода
LINQ Sum() beats a hand-written loop: benchmarks on .NET 8/9/10, disasm proofs, overflow breaking change, and the AVX-512 path .NET hides on Cascade Lake
A complete teardown of .NET 11, taught from zero on a runtime you install with one command, and specified precisely enough to write a garbage collector the real CLR loads or a runtime of your own from scratch. Blueprints generated from the runtime's own data contracts, with an ECMA-335 drift ledger and a conformance scorecard attached.
To associate your repository with the ryujit topic, visit your repo's landing page and select "manage topics."