Память в Mac OS X работает не так, как OS X Touch. Примечательно, что у настольного компьютера намного больше оперативной памяти, и он будет переключать память на диск, когда приложения требуют большего. Кроме того, существует множество приложений, конкурирующих за ресурсы.
Настоящий вопрос , чего вы пытаетесь достичь?
Если ответ: эффективно использовать память , тогда вам нужно сосредоточиться по минимизации распределения, проверке отсутствия утечек и оптимизации ваших структур данных. Используйте ObjectAlloc в инструментах, чтобы проанализировать использование памяти и выяснить, на чем сосредоточиться.
Однако, если ответ больше похож на , у меня есть подсистема кэширования, которая выигрывает от большого объема памяти, но я хочу дать ей обратно в систему, когда другие приложения увеличивают свои требования , тогда вы
Я думаю, вы можете разумно ожидать, что у большинства современных компьютеров Mac будет как минимум 1 ГБ ОЗУ (возможно, 2, а может быть, даже 4+). Если ваше приложение вызывает ошибки malloc и / или не хватает памяти, значит, вы поступили неправильно и вам нужно переосмыслить то, что вы храните в памяти.
Итак, в двух словах, нет. Mac не так ограничен памятью, как iPhone, поэтому в нем нет необходимости.
Насколько я знаю, прямого эквивалента нет. Предположительно, вы могли бы проверить, нет ли сбоя при выделении объектов, а затем отправить уведомление, чтобы другие части вашего приложения могли их прослушивать.
На практике большинство приложений не беспокоит. В ситуациях, когда вы действительно начинаете не выделять объекты (виртуальная память исчерпана, загрузочный диск полностью заполнен и т. Д.), Вы, скорее всего, все равно столкнетесь с ошибкой.
Пусть ядро позаботится об управлении памятью.
iPhone не использует виртуальную память, поэтому его ограничения памяти очень конкретны. Единственная возможность ядра - предупредить вас, прежде чем оно в конечном итоге вас отключит. Вот почему в iPhone есть предупреждения о памяти.
Ядро настольного компьютера имеет гораздо больше возможностей для работы с условиями нехватки памяти, поэтому лучше просто позволить ему делать свою работу. Бесполезно начинать агрессивное освобождение памяти, которая уже была перенесена на диск.