2008-08-26 11 views
12

memoria virtual desde una perspectiva tamaño ordenador es¿Qué significa "Tamaño de VM" en el Administrador de tareas de Windows?

[una manera de hacer que el programa] pensar que tiene una gran gama de direcciones contiguas; pero en realidad las partes que está usando actualmente están dispersas en alrededor de la RAM, y las partes inactivas están guardadas en un archivo de disco. (Wikipedia)

yo interpretaría Tamaño VM en el administrador de tareas de Windows, ya sea como el espacio virtual direccionable total de la memoria o la cantidad de memoria que el proceso está utilizando actualmente en el espacio de memoria virtual.

Pero en el Administrador de tareas el tamaño de WM es en muchos casos menor que el uso de memoria, que debería ser la cantidad de RAM que el proceso está utilizando. Por lo tanto, supongo que el tamaño WM significa algo más?

Respuesta

-2

¿Qué tal un puesto de terror de codificación para responder a esta: http://www.codinghorror.com/blog/archives/000393.html

"Tamaño VM: ¿Qué cantidad de memoria utilizada con menos frecuencia los procesos se ha paginado en el disco."

+2

En realidad, vea el comentario de Mike Dimmick sobre esa publicación: "Se equivoca en el tamaño de VM. Es el total de todos los bytes privados (no compartidos) asignados por este proceso, ya sea en la memoria física o no ... " –

0

La cantidad de memoria asignada en el espacio de direcciones de ese proceso. Esto puede incluir asignaciones de memoria compartida.

En un proceso, habrá secciones del espacio de memoria para cada objeto compartido (DLL) que sea parte de él, así como algo de memoria para la pila y áreas asignadas por el proceso en sí.

Por ejemplo, mirando el mapa de memoria de un comando cat en mi sistema puedo ver sus asignaciones de memoria. En este caso, utilizo cat /proc/self/maps para investigar el proceso del gato. En su memoria virtual está mapeado el binario en sí, algunos montones, información de locale, libc (con varios indicadores de permisos), ld.so (el enlazador dinámico), stack, vdso y secciones vsyscall y algunas asignaciones anónimas (páginas mapeadas sin archivo de respaldo))

00400000-00408000   r-xp  /bin/cat 
00607000-00608000   rw-p  /bin/cat 
008ac000-008cd000   rw-p  [heap] 
7fbd54175000-7fbd543cf000 r--p  /usr/lib/locale/locale-archive 
7fbd543cf000-7fbd54519000 r-xp  /lib/libc-2.7.so 
7fbd54519000-7fbd54718000 ---p  /lib/libc-2.7.so 
7fbd54718000-7fbd5471b000 r--p  /lib/libc-2.7.so 
7fbd5471b000-7fbd5471d000 rw-p  /lib/libc-2.7.so 
7fbd5471d000-7fbd54722000 rw-p 
7fbd54722000-7fbd5473e000 r-xp  /lib/ld-2.7.so 
7fbd5491d000-7fbd5491f000 rw-p 
7fbd5493a000-7fbd5493d000 rw-p 
7fbd5493d000-7fbd5493f000 rw-p  /lib/ld-2.7.so 
7fff5c929000-7fff5c93e000 rw-p  [stack] 
7fff5c9fe000-7fff5c9ff000 r-xp  [vdso] 
ffffffffff600000-ffffffffff601000 r-xp [vsyscall] 

Para cada asignación, restar la dirección de inicio de la dirección de final para determinar su tamaño, por ejemplo la línea de [stack]: 0x7fff5c9ff000 - 0x7fff5c9fe000 = 0x1000. En decimal, 4096 bytes - una pila de 4 kib.

Si suma todas estas figuras, obtendrá el tamaño de la memoria virtual (VM) del proceso.

El tamaño de la máquina virtual no es una manera confiable de determinar cuánta memoria está usando un proceso. Por ejemplo, solo habrá una copia de cada uno de los mapas /lib/libc-2.7.so de solo lectura en la memoria física, independientemente de cuántos procesos lo usen.

1

¿Cuál es la respuesta correcta sobre el tamaño de VM?

  • en la codificación del horror

    ¿Cuánto de memoria utilizada con menos frecuencia los procesos se ha paginado en el disco.

  • En el comentario de la Codificación del horror

    Estás equivocado en VM tamaño. Es el total de todos los bytes privados (no compartidos) asignados por este proceso, ya sea que estén actualmente en la memoria física o no. Es un mejor valor para rastrear si tienes una pérdida de memoria que 'Mem Usage'. El mismo valor está disponible en el Monitor de rendimiento como 'Proceso: Bytes privados'.

  • En MSDN

    virtual Tamaño de la memoria: La cantidad de memoria virtual o espacio de direcciones, comprometida con un proceso.

me confundo lo que es Corrent.

8

Es el total de todos los bytes privados (no compartidos) asignados por este proceso, ya sea que estén actualmente en la memoria física o no.

Ver también An introductory guide to Windows Memory Management o Commit Charge Wikipedia article

Para un desarrollador de ver el estado del proceso como éste se lo recomendaría a instalar SysInternals Process Explorer y usarlo en lugar del Administrador de tareas por defecto. Este valor se llama "Bytes privados" en él.

+1

thx para el enlace a SysInternals Process Explorer – jedierikb

-3

No puedo ver el tamaño de VM en el administrador de tareas de Windows, Whatup Gold tiene un tamaño de VM en su administrador de tareas, ¿lo quiere decir? en este caso, creo que se refiere a la cantidad total disponible para la VM

+2

Ver -> Seleccionar columnas ... -> Tamaño de memoria virtual –

Cuestiones relacionadas