У меня есть приложение, которое загружает и кеширует как минимум 250 000 файлов размером 8 КБ * общим объемом около 2 ГБ. При обновлении этого кеша мне нужно удалить последний использованный файл. * Эти крошечные файлы занимают два сектора по 4 КБ.
Какова относительная стоимость получения дескриптора файла по имени для этого типа файла в каталоге на диске 5400 об / мин в формате NTFS? Если я сохраню все 200K файлов в одном каталоге, просто получение дескриптора файла займет больше нескольких миллисекунд? Я могу легко сгруппировать файлы по разным каталогам.
Windows 7 по умолчанию отключает время последнего доступа для файлов, и я не хочу требовать от администратора включения этой функции. Следует ли мне вести отдельный список времени доступа к файлам в памяти (сериализованный на диск при выходе из приложения?)
Следует ли мне рассмотреть возможность хранения этих файлов в одном большом плоском файле? Сопоставление памяти может быть затруднено, если я использую что-то старше .NET 4.0