Я работаю в смешанном проекте C / C ++, который имеет следующую ситуацию.
Мне нужна итерация, чтобы проходить по одному очень маленьким фрагментам (также редко большим по размеру) в файле. В идеале я должен просто прочитать их один раз подряд. Я думаю, что в этом случае будет лучшим решением прочитать большой кусок в буфер и использовать его позже, а не читать каждый из них мгновенно, когда мне нужно.
Проблема в том, как мне сбалансировать размер кеша? Есть ли какой-нибудь известный алгоритм / библиотека, которым я могу воспользоваться?
ОБНОВЛЕНИЕ: (меняет название)
Спасибо за ответы, ребята, и я понимаю, что в наших боксах работают разные уровни механизма кэширования. Но этого недостаточно в моем случае.
Я думаю, что здесь упустил что-то важное. На самом деле я строю приложение на существующей платформе, в которой частые запросы на чтение к движку часто обходятся мне слишком дорого. (Да, я полагаю, что механизм использует преимущества кэшей ОС и уровня диска.) И я действительно пытаюсь создать систему предварительной выборки на уровне приложения.
Мысли