Как виртуальная память может быть больше, чем общее доступное пространство?

8

Почему мой MBP иногда сообщает VM Size: 300+ GB когда в мониторе активности на вкладке «Системная память» размер жесткого диска составляет всего 250 ГБ (всего), а объем оперативной памяти равен 4 ГБ? Я знаю, что он не может волшебным образом получить это дополнительное пространство, но что он пытается сказать мне?

Joel Spolsky
источник

Ответы:

3

Это все воображаемо, поэтому какая-то комбинация программ говорит о том, что когда-нибудь она может использовать так много. Не беспокойтесь, если пространство подкачки не превысит ваш размер оперативной памяти или если активный + проводной оперативной памяти не превышает 75% физической памяти. (3ГБ в вашем случае)

По сути, эта идея ускоряет обработку памяти во время работы системы. Поскольку программы продолжают запрашивать все больше и больше памяти, система распределяет виртуальные куски виртуальной оперативной памяти с тоннами пространства между распределением каждого процесса. Это делает некоторые очень распространенные вычисления проще и быстрее и делает маловероятным, что регионы когда-либо будут перекрываться. Когда области виртуальной памяти накладываются друг на друга, стоит приостановить работу и переназначить память под работающей программой. Все эти ментальные олимпийские игры с участием виртуальной памяти заставляют ваш компьютер работать быстрее.

bmike
источник
3

Общие библиотеки и фреймворки учитываются как часть виртуальной памяти для каждого приложения который использует их.

Если у вас есть 100 процессы, запущенные на вашем компьютере, и 5 MB библиотека, используемая всеми этими процессами, то эта библиотека считается 500 MB виртуальной памяти.

Вы также можете сложить числа в столбце «Виртуальная память» списка процессов - более точное название для этого столбца - «Виртуальный». Частный Память ". Не включает в себя общие данные.


100 процессов - это не так много, как кажется (у меня сейчас 75 на моем MBP, и я работаю намного меньше, чем обычно).

Некоторые библиотеки используются практически всеми приложениями в вашей системе, даже если они не имеют интерфейсов. После добавления всех общих библиотек в вашей системе у вас есть большой объем данных, который на самом деле занимает очень мало памяти.

Как уже упоминалось в bmike, вы должны больше беспокоиться о пространстве подкачки или активном + проводной памяти. В данный момент Activity Monitor сообщает, что у меня 170 ГБ виртуальной памяти, но я использую только 1,5 МБ подкачки.

ughoavgfhw
источник