Подтвердить что ты не робот

Что означает "грязный" и "резидент" в отношении виртуальной памяти?

Я выбыл из программы CS в своем университете... Итак, может кто-то, кто имеет полное представление об информатике, скажите мне: , что значит "грязный" и "резидент", что касается виртуальной памяти? И, для бонусных очков, что, черт возьми, виртуальная память? Я использую инструмент Allocations/VM Tracker в Инструментах для анализа приложения iOS.

* Подсказка - попробуйте объяснить, как если бы вы разговаривали с 8-летним ребенком или полным глупым. Спасибо, ребята.

4b9b3361

Ответ 1

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

"Резидентная память" - это память, которая в настоящее время загружается в оперативную память, которая фактически используется. Хотя вашему приложению может потребоваться отслеживание большого количества разных элементов в памяти, для этого может потребоваться только небольшое подмножество, доступное в любой момент времени. Удержание этого числа на низком уровне означает, что ваше приложение имеет более низкое время загрузки, хорошо играет с другими и снижает риск того, что у вас закончится нехватка памяти и произойдет сбой при работе вашего приложения. Это, вероятно, номер, на который вы должны обратить внимание, большую часть времени.

"Виртуальная память" - это общий объем данных, которые ваше приложение отслеживает в любой момент времени. Этот номер отличается от того, что активно используется (то, что используется, помечено как "Резидентная память" ) - система будет хранить данные, которые отслеживаются, но не используются вашим приложением где-то, кроме фактической памяти. Это может, например, сохранить его на диск.

Ответ 2

WWDC 2013 - 410 Исправление проблем с памятью Это объясняет это красиво. Стоит посмотреть, так как это также объясняет некоторые практические последствия грязной, резидентной и виртуальной памяти.