Пока Cache / RAM / Harddisk / SSD не занят обслуживанием другого доступа (например, запросов DMA) и аппаратное обеспечение является достаточно надежным, стоимость остается постоянной (хотя они могут быть большой константой).
Когда вы получаете ошибку в кеше, и вам приходится перелистывать данные на жесткий диск, чтобы прочитать переменную, тогда это всего лишь простой запрос на чтение с жесткого диска, это огромная стоимость, так как ЦП должен: отправить прерывание ядру для чтения с жесткого диска запрос, отправьте запрос на жесткий диск, подождите, пока жесткий диск запишет данные в ОЗУ, затем прочитайте данные из ОЗУ в кэш-память и в регистр. Тем не менее, эта стоимость по-прежнему постоянна.
Фактические числа и пропорции будут варьироваться в зависимости от вашего оборудования и совместимости вашего оборудования (например, если ваш ЦП работает на 2000 МГц, а ваша ОЗУ передает данные на частоте 333 МГц, они не очень хорошо синхронизируются). Единственный способ понять это - проверить это в своей программе.
И это не преждевременная оптимизация, это микрооптимизация. Пусть компилятор беспокоится о таких деталях.