El tamaño de la memoria virtual de OS X no puede ser correcto, ¿verdad?

1

Tengo Snow Leopard y 8G de RAM. El Monitor de actividad informa un tamaño de máquina virtual de 173 Giga bytes. Mi disco duro tiene solo 250G y 200G de eso está en uso. Tengo muchos más datos de 27 GB en mi disco duro. Entonces, ¿el tamaño de la memoria virtual realmente no puede ser 173GB, seguramente?

Fairflow
fuente
Tengo 260 GB allí, whoop whoop.
slhck
VMware Fusion a veces tiene petabytes o exabytes de memoria virtual en mi sistema.
Daniel Beck

Respuestas:

3

La memoria virtual no está completamente ocupada todo el tiempo. Es probable que su Mac haya establecido un límite máximo para la memoria virtual de 173 GB.

Eso no significa que se hayan asignado todos los 173 GB de memoria. Se asignará según el requisito.

No creo que se asignen más de 8 GB a menos que use alguna aplicación increíblemente hambrienta de RAM.

tumchaaditya
fuente
Bueno, según Activity Monitor, la VM sube y baja, a veces llegando a 250G. No parece haber un valor máximo. Ambos debemos estar en lo cierto al decir que la VM tal como se informó no se puede usar realmente, y tal vez es simplemente una falla en el Monitor de actividad. ¡Gracias por su respuesta!
Fairflow
Sí, no hay un máximo definido, al menos ninguno que yo sepa. A menos que experimente problemas de rendimiento, no necesita preocuparse @fairflow
slhck
0

Tengo un tamaño de VM de 350 GB.

El tamaño de la VM en realidad no refleja ningún recurso en uso, ni es un límite. Es la suma de los tamaños de espacio de direcciones ( ps -ax -O vszse mostrarán) para todos los procesos en ejecución. El tamaño del espacio de direcciones es simplemente el número más grande utilizado por ese proceso para referirse a ubicaciones en la memoria; la memoria por debajo de ese valor ni siquiera puede asignarse a ningún propósito

Este es solo un ejemplo de por qué habría tales brechas:

Varios programas pueden usar bibliotecas de código compartidas (también conocidas como frameworks), como Cocoa. Para iniciar un programa de manera eficiente, estas bibliotecas compartidas están organizadas de manera que cada biblioteca en su sistema (en su mayoría) se encuentre en una dirección virtual diferente; esto significa que cuando se carga el programa, su código que hace referencia a la biblioteca ya puede apuntar a esa dirección y no necesita reescribirse con diferentes direcciones (reubicación o enlace dinámico). Pero no todos los programas usan todas las bibliotecas, por lo que habrá lagunas.

(No soy un experto en estos asuntos; algunos detalles específicos pueden estar desactivados. Considere lo anterior como una guía sobre el tipo de complejidad que puede existir en un sistema moderno, no exactamente cómo funciona realmente).

Kevin Reid
fuente