¿Qué significan "sucio" y "residente" en relación con la memory virtual?

Salí del progtwig de CS en mi universidad … Entonces, ¿puede alguien que tenga un conocimiento completo de Ciencias de la Computación decirme: ¿cuál es el significado de Sucio y Residente, en relación con la Memoria Virtual? Y, para get puntos de bonificación, ¿qué diablos es la memory virtual de todos modos? Estoy usando la herramienta Asignaciones / Rastreador VM en Instrumentos para analizar una aplicación iOS.

* Pista : trata de explicar como si estuvieras hablando con un niño de 8 años o un imbécil completo. Gracias chicos.

"Memoria sucia" es la memory que ha cambiado de alguna manera: esa es la memory que el recolector de basura tiene que mirar y luego decidir qué hacer con ella. Dependiendo de cómo construya sus estructuras de datos, podría hacer que el recolector de basura marque una gran cantidad de memory como sucia, haciendo que cada ciclo de recolección de basura tome más time del requerido. Mantener este número bajo significa que su progtwig se ejecutará más rápido y será less probable que experimente pausas de recolección de basura notables. Para la mayoría de las personas, esto no es realmente una preocupación.

"Memoria residente" es la memory que se carga actualmente en la RAM – memory que se está utilizando. Si bien su aplicación puede requerir que se monitoreen muchos elementos diferentes en la memory, es posible que solo se requiera que se pueda acceder a un pequeño subset en cualquier momento. Mantener este número bajo significa que su aplicación tiene times de carga más bajos, juega bien con otros y networkinguce el riesgo de que se quede sin memory y se bloquee mientras se ejecuta su aplicación. Este es probablemente el número al que deberías prestar atención, la mayoría de las veces.

"Memoria virtual" es la cantidad total de datos que su aplicación está rastreando en cualquier momento. Este número es diferente de lo que está en uso activo (lo que se está usando está marcado como "memory residente"): el sistema conservará los datos que su aplicación rastrea pero no utiliza en algún lugar que no sea la memory real. Podría, por ejemplo, savelo en el disco.

WWDC 2013 – 410 Problemas de memory de fijación Explica esto muy bien. Vale la pena mirar, ya que también explica algunas de las implicaciones prácticas de la memory sucia, residente y virtual.