Ваша операционная система уже делает именно то, что вы хотели - она активно кэширует в оперативной памяти все данные, которые были прочитаны с вашего жесткого диска самым последним использованным способом.
Для любой ОС, которая того стоит, действительно "свободной" памяти должно быть очень мало - всего несколько мегабайт. Вся оставшаяся память предназначена для кэширования данных на диске. Если какая-либо программа запрашивает большой блок памяти, используя malloc
или GlobalAlloc
, не важные данные, кэшированные для чтения, выбрасываются для удовлетворения этого запроса на выделение памяти.
Одно интересное свойство этого кэширования состоит в том, что даже если у вас есть 32-разрядное приложение, которое не может выделить более 4 ГБ ОЗУ, файлы, к которым обращается это приложение, все равно будут кэшироваться вашей 64-разрядной ОС, даже если общий размер всех файлов будет хорошим за 4 ГБ.
Другими словами, если у вас есть 32 ГБ ОЗУ, и вы начинаете играть в свою игру, которая весит 13 ГБ, Windows попытается активно кешировать все 13 ГБ в ОЗУ. Однако это не означает, что он останется в этом кеше навсегда, потому что, скорее всего, данные сильно сжаты, и поскольку Starcraft необходимо распаковать эти данные в памяти, чтобы иметь возможность манипулировать ими и создавать представление вашего игрового мира, он может попытаться выделять много памяти из Windows, что может заставить ее выбрасывать часть этого кэшированного содержимого (но даже тогда, в наименьшей степени использованным способом).
С практической точки зрения, вероятно, самый простой способ ускорить загрузку - это использовать SSD-накопитель. Современные SSD-накопители обычно имеют скорость чтения около 500 МБ / с - примерно в 5 раз быстрее, чем обычный жесткий диск. Что еще лучше, скорость чтения SSD не требует огромных усилий при чтении действительно маленьких файлов (для стандартного жесткого диска скорость чтения может быть в 100 раз ниже для маленьких файлов).