Предположим, у меня есть целочисленный массив из 10 элементов, считайте, что он имеет достаточный размер, чтобы поместиться в кэш процессора.
Будет ли компилятор выполнять эту оптимизацию и вставлять массив в кэш?
Моя логика такова: если я ищу элемент, я ищу, скажем, $ 4 $ в массиве, то этот массив помещается в кэш, и я хочу искать (сканировать линейно) $ 6 $, яЯ могу сделать это быстро, потому что массив был помещен в кэш процессора, поэтому мне не нужно посещать оперативную память.Вот как это работает?
Если массив имел 10 000 000, он не может поместиться в кэш, но, скажем, он может уместиться на 1 странице (подкачка страниц), я думаю, что произойдет, когда я сейчас сканирую элементэто:
Идентификатор страницы -> TLB -> Проверить кадр в ОЗУ и вернуть результат
Это правда в реальности?