Однажды я обнаружил, что 32 ГБ мне не хватает. Память по диспетчеру задач была забита, периодически выдавалось сообщение о том, что памяти мало.
Программы бывают такие, что стоит операционной системе выделить им килобайт, так они терабайт откусят. Но как же понять, в чём дело. Ниже я просуммирую опыт поиска причин забивания памяти.
1. Надо проверить обычным способом, кто жрёт память. То есть, посмотреть в диспетчере задач занимаемую память. По-английски колонка называется Commit Size. По умолчанию она отключена, вместо неё отображается какая-то другая память, которая всегда меньше. Но обычно уже этот метод показывает, кто есть кто.
2. Если простейший метод не даёт результатов, то надо проверить, стоит ли в диспетчере галочка "Show processes from all users". К сожелению не знаю, где эта галочка расположена в десятке. В восьмёрке надо изучать вкладку Users.
Это очевидные рекомендации. Я бы не стал писать пост, если бы дело было в этом. Я пробовал оба метода и они давали отрицательный результат. Судя по размеру выделенной памяти, у меня должно было бы быть занято гигабайт 10 от силы. Но по факту было занято 28 ГБ с гаком.
В общем, специально для таких целей один широко известный в узких кругах товарищ по имени Марк Руссинович. Он изобрёл программу, отображающую структуру памяти. Называется она RAMMap. Доступна для скачивания с официального сайта микрософт.
3. Включить RAMMap. Любоваться. У меня, например, оказалось, что 15 гигабайт из 32 занимает mapped file. Это файл, отображаемый на память. У меня в программе RAMMap не было написано, кто пользуется этим файлом, но был указан об'ём. Оказывается, в память было прибито 15 гб от файла. А полный размер файла был 50 ГБ. Это был образ-установщик Evil Within. Странным тут было то, что у меня этот образ сейчас не используется. Также, он не подключён к виртуальному приводу.
Я посмотрел на другие аналогичные файлы в окошечке со списком замапленных и догадался, что их все в мэппинг поместил мю-торрент (1.6.1). Поэтому я его временно закрыл.
4. А чтобы провести очистку памяти, надо у RAMMap выбрать в меню следующие пункты:
Empty -> Standby List
Empty -> SystemWorkingSet
После этого ничейные файлы освобождают память. Что бывает с чейными, я не знаю. Таким методом я освободил 15 гигабайт.