Перейти к содержимому
IMOEX 2022.27 3.2%
·Технологии·18 июля 2026 г.

Бенчмаркая Sum: ускорил циклом — замедлил в ×4,7

Бенчмаркая Sum: ускорил циклом — замедлил в ×4,7

Уважаемые читатели, в этой статье я хочу рассказать о том, что происходит внутри values.Sum() в современном .NET — там нашлись векторные инструкции, контроль переполнения и список процессоров, которым рантайм намеренно ограничивает ширину вектора, — и представить свои выводы.

В прошлых статьях серии самописные циклы уже проигрывали BCL в поиске по строке, JIT сам выкидывал проверки границ, а foreach прятал аллокации. Тут случай интереснее: values.Sum() — это LINQ, который при оптимизации первым делом меняют на цикл.

Это отрывок статьи. Полную версию читайте на сайте источника по ссылке ниже.

Источник: Habr