Что означают «грязный» и «резидентный» по отношению к виртуальной памяти? - PullRequest
34 голосов
/ 03 марта 2011

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

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

Ответы [ 2 ]

44 голосов
/ 03 марта 2011

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

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

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

3 голосов
/ 30 января 2014

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

...