Как мне разрешить идти "сверх памяти" при выполнении XCode - PullRequest
0 голосов
/ 06 октября 2019

Я написал функцию, которая будет выделять больше памяти, имеющейся у меня на моей машине (16 ГБ), но, похоже, что эта функция не оказывает никакого влияния на мою машину («Используемая память» в разделе «Память»). Раздел давления в нижней части страницы вообще не меняется, пока я его запускаю). Вот снимок экрана, показывающий это:

enter image description here

Почему mrmoy не меняется при запуске этой программы и как я могу получить до 37GB«? Использует ли он «фальшивую память» или что-то еще во время отладки и имеет точки останова?

1 Ответ

0 голосов
/ 06 октября 2019

В большинстве современных операционных систем, особенно Mac OS или Linux, используется виртуальная память . Виртуальная память - это способность операционной системы занимать страницу дискового пространства и отображать ее в адресуемую память. Эта память имеет виртуальное адресное пространство. Это означает, что адрес любой памяти - это не физическое место в ОЗУ, а место, которое отображается на странице диска. Эта виртуализация адресных пространств выполняется компонентом компьютера, который называется MMU (блок управления памятью).

Давление памяти не изменяется, поскольку ОС распознает большой вызов, сделанный вами для malloc, не подходитполностью в оперативной памяти.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...