6

Иногда вы лучше, чем Windows, знаете, какие файлы будут использоваться позже. Предположим, у вас есть 8 ГБ памяти, и вы используете один и тот же файл 1 ГБ каждый час в приложении, связанном с вводом-выводом (для завершения которого требуется 1 секунда, если файл кэшируется, и 1 минута, если нет). Теперь вы обрабатываете еще 16 ГБ данных, которые не будут использоваться повторно. Естественно, часто используемый файл объемом 1 ГБ будет выталкиваться из кеша. Было бы полезно, если бы кто-нибудь сказал Windows сохранить этот файл объемом 1 ГБ в памяти. (А еще лучше, если вы скажете Windows не кэшировать эти 16 ГБ данных, но я не уверен, что это можно сделать.)

Ситуация хуже для файлов в общих сетевых ресурсах: Windows удаляет файлы из кэша, даже если есть свободная память. Если вы немедленно повторно используете файл, он все равно будет в кеше; но если вы закроете файл и подождите 30 секунд, кэш исчезнет, и системе потребуется повторно извлечь файл с удаленного сервера. Для меня это очень заметно, потому что я подключен к сети 3 Мбит / с и работаю с файлами размером около 10 МБ.

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

(Если это легко сделать под Linux, пожалуйста, дайте мне знать.)

2 ответа2

3

На ум приходят две вещи.

  1. Скопируйте файл на RamDisk перед первым использованием и переместите его обратно в файл, когда вы закончите с ним. (RamSisk QSoft за $ 12 был рекомендован здесь)
  2. Купите быстрый SSD-накопитель и посмотрите, поможет ли это (достаточно)
0

Это возможно с определенными типами, например, dll:

Windows кэширует набор библиотек, которые обычно используются, это «Известные библиотеки DLL». Чтобы сохранить dll-файл в кеше, он просто должен быть частью этого набора.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .