Там действительно нет ответа на это. При нормальных обстоятельствах ОС будет хранить что-то практически во всей памяти системы. По сути, когда он читает что-то в память, он будет хранить его копию в памяти, пока что-то еще не будет нуждаться в памяти, так что первое будет удалено. Есть ряд функций, которые могут получить информацию о памяти, но ни одна из них даже не пытается действительно вернуть объем памяти, который полностью не используется. Самый близкий из известных мне GlobalMemoryStatusEx
, который возвращает число для объема доступной памяти.
Это означает, что то, что в данный момент находится в этой памяти, в данный момент находится в памяти и на диске, поэтому копия в памяти может быть выброшена без предварительной записи на диск. Например, если вы запустили программу, большая часть кода останется в памяти (пока что-то еще не захочет памяти), если вы решите запустить ее снова. Поскольку это всего лишь копия программы на диске, ее можно выбросить и при необходимости перезагрузить с диска.
Если вам нужна более подробная информация, вы можете использовать такие вещи, как VirtualQueryEx
, чтобы получить ее, но обычно она перегружает вас информацией, сообщающей вам о каждом блоке памяти, используемом в данном процессе вместо того, чтобы давать красивое, простое число, говорящее "x байтов свободно".