Определение размера блока кеша

Как узнать размер блока кеша в Ubuntu программно (с C ++) или иначе?


person Izza    schedule 23.03.2011    source источник
comment
Дубликат stackoverflow.com/q/1922249/550514?   -  person Chad La Guardia    schedule 23.03.2011
comment
@ChadLaGuardia Я бы сказал, что это не дубликат, потому что этот вопрос ограничен только C ++. Здесь OP открыт для методов за пределами определенного языка, таких как команда cli.   -  person The Unknown Dev    schedule 11.04.2016


Ответы (2)


Вы можете найти его в /proc/cpuinfo; cache size для общего размера и cache_alignment для размера блока.

person Mike Seymour    schedule 23.03.2011

Один из способов - заполнить std::vector или простой массив случайными значениями и сделать что-нибудь простое, например квадрат каждого элемента в петлю. Затем измерьте время выполнения как функцию длины вектора. Вы очень четко увидите скачок времени выполнения, когда ваш вектор не помещается в кеш.

person ev-br    schedule 23.03.2011