Кэш файлов LRU и стоимость поиска файла в каталоге Windows

У меня есть приложение, которое загружает и кеширует как минимум 250 000 файлов размером 8 КБ * общим объемом около 2 ГБ. При обновлении этого кеша мне нужно удалить последний использованный файл. * Эти крошечные файлы занимают два сектора по 4 КБ.

Какова относительная стоимость получения дескриптора файла по имени для этого типа файла в каталоге на диске 5400 об / мин в формате NTFS? Если я сохраню все 200K файлов в одном каталоге, просто получение дескриптора файла займет больше нескольких миллисекунд? Я могу легко сгруппировать файлы по разным каталогам.

Windows 7 по умолчанию отключает время последнего доступа для файлов, и я не хочу требовать от администратора включения этой функции. Следует ли мне вести отдельный список времени доступа к файлам в памяти (сериализованный на диск при выходе из приложения?)

Следует ли мне рассмотреть возможность хранения этих файлов в одном большом плоском файле? Сопоставление памяти может быть затруднено, если я использую что-то старше .NET 4.0

1
задан Cat Zimmermann 7 October 2010 в 20:30
поделиться