31 июля 2009 · Комментарий

Без заголовка

Например, сложение двух регистров выполняется за 1 такт, а загрузка регистра значением из памяти 4 такта. Вы видимо программированием последний раз в прошлом тысячелетии занимались. Тогда загрузка из памяти и правда 4 такта занимал, тогда и кэши не нужны были. А сейчас 4 такта загрузка из кэша занимает, да и то не из всякого. Там ведь целая иерархия кэшей с разной латентностью. Попробуйте на практике, а не в теории попрограммировать чего-нить. Например возьмите таблицу или хэш-таблицу и проверьте скорость доступа на разных размерах, когда (хэш-)таблица влезает в кэш и когда не влезает. Еще поиграйтесь с последовательным vs случайным доступом в большую таблицу. Впрочем, можно просто хорошую свежую статью прочитать про кэши, там это расписывается.

К записи · К обсуждению