Перейти к содержимому
IMOEX 2164.42 0.1%

#проверка границ

·Технологии

Бенчмаркая проверки границ: фикс, который шёл 8 лет, и проверка, которая жива до сих пор

Уважаемые читатели, в этой статье я хочу рассказать о проверках границ массива и представить свои выводы. Каждое обращение arr[i] обязано проверить индекс, иначе IndexOutOfRangeException — а JIT старается эти проверки убирать, когда может доказать, что выход за границы невозможен. Я взял несколько обычных циклов и посмотрел в машинный код на .net 8, 9, 10 и 11 одновременно. Результат разложился по версиям так, как я не ожидал. Будет три истории: