"La entrada de páginas / segundo es el contador para mirar, pero no debe preocuparse por" intercambiar ", ya que Windows no utiliza el archivo de página como * nixes.
Primero debes entender que las páginas de Windows no entran. Voy a citar la porción relevante de la publicación del blog de Eric Lipperts (ligeramente editada) ya que no puedo decirlo mejor:
"La RAM se puede ver simplemente como una optimización del rendimiento. Acceder a los datos en la RAM, donde la información se almacena en campos eléctricos que se propagan a una velocidad cercana a la de la luz, es mucho más rápido que acceder a los datos en el disco, donde la información se almacena en forma enorme y pesada. moléculas de metales ferrosos
El sistema operativo realiza un seguimiento de qué páginas de almacenamiento desde qué procesos se accede con mayor frecuencia, y hace una copia de ellas en la RAM, para aumentar la velocidad. Cuando un proceso accede a un puntero correspondiente a una página que actualmente no está en caché en la RAM, el sistema operativo hace un "error de página", sale al disco y hace una copia de la página del disco a la RAM, haciendo la suposición razonable que está a punto de ser accedido nuevamente pronto.
El sistema operativo también es muy inteligente al compartir recursos de solo lectura. Si dos procesos cargan la misma página de código desde la misma DLL, entonces el sistema operativo puede compartir la memoria caché de RAM entre los dos procesos. Dado que presumiblemente el código no será cambiado por ninguno de los procesos, es perfectamente sensato guardar la página duplicada de RAM compartiéndola.
Pero incluso con el uso compartido inteligente, eventualmente este sistema de almacenamiento en caché se quedará sin RAM. Cuando eso sucede, el sistema operativo adivina a qué páginas es menos probable que se vuelva a acceder pronto, las escribe en el disco si han cambiado y libera esa RAM para leer en algo que es más probable que se acceda nuevamente. pronto.
Cuando el sistema operativo adivina incorrectamente, o, más probablemente, cuando simplemente no hay suficiente RAM para almacenar todas las páginas a las que se accede con frecuencia en todos los procesos en ejecución, la máquina comienza a "sacudirse". El sistema operativo pasa todo su tiempo escribiendo y leyendo el costoso almacenamiento en disco, el disco funciona constantemente y no realiza ningún trabajo.
Esto también significa que "quedarse sin RAM" rara vez produce un error de "falta de memoria". En lugar de un error, da como resultado un mal rendimiento porque el costo total del hecho de que el almacenamiento está realmente en el disco de repente se vuelve relevante.
Otra forma de ver esto es que la cantidad total de memoria virtual que consume su programa no es realmente relevante para su rendimiento. Lo relevante no es la cantidad total de memoria virtual consumida, sino más bien (1) qué cantidad de esa memoria no se comparte con otros procesos, (2) qué tan grande es el "conjunto de trabajo" de las páginas de uso común y ( 3) si los conjuntos de trabajo de todos los procesos activos son más grandes que la RAM disponible.
A estas alturas debería estar claro por qué los errores de "falta de memoria" generalmente no tienen nada que ver con la cantidad de memoria física que tiene, ni con la cantidad de almacenamiento disponible. Casi siempre se trata del espacio de direcciones, que en Windows de 32 bits es relativamente pequeño y se fragmenta fácilmente. "
Algunos puntos adicionales:
- los archivos dlls y de programa siempre se ingresan, nunca se eliminan, ya que ya están en el disco (y, por lo general, las primeras páginas se liberan cuando el RAM físico se agota)
- es mucho más probable que se quede sin entradas libres en la tabla de páginas o tenga una memoria muy fragmentada que cualquier otro problema de memoria (aparte del mal rendimiento general como ya se mencionó
- incluso si ejecuta sin archivo de página, aún puede obtener fallas de página
- en términos generales, mirar la memoria comprometida es más revelador de cómo un proceso usa la memoria
para obtener una imagen completa de cómo funciona la gestión de memoria en Windows, consulte
El administrador de memoria virtual en Windows NT
si crees que tienes un problema de memoria, primero te sugiero que veas esta presentación sobre la solución de problemas de memoria de Windows
Aquí hay una gran explicación de por qué a veces se queda "sin memoria" cuando no lo está gracias a la fragmentación de la memoria:
Consulte también Empujar los límites de Windows: memoria física
Más sobre memoria virtual, fragmentación de memoria y fugas, y WOW64
RAM, memoria virtual, archivo de paginación y todo eso (soporte de microsoft)
Actualizar:
Windows 10 hace algo un poco diferente con la memoria y, con el tiempo, verá un proceso llamado "Sistema y memoria comprimida". Windows 10 agrega un "almacén de compresión" a la lista de paginación. Esta memoria RAM es la memoria del USUARIO que es propiedad del sistema (por lo general, el sistema solo tenía memoria del núcleo). Esta memoria se comprime en su lugar para una reducción promedio de alrededor del 30%. Esto permite que se almacenen más páginas en la memoria (para aquellos de ustedes que hacen las matemáticas, es un 70% más de espacio) Tenga en cuenta que si la memoria aún tiene presión, entonces las páginas del almacén de compresión (espacio de proceso del sistema en modo de usuario) se pueden colocar en el lista (comprimida) que luego puede escribirse en el archivo de paginación físico. El sistema verá que provienen del espacio del modo de usuario del sistema y están comprimidos y no intentará volver a colocarlos en la tienda. Por lo tanto, en los sistemas Windows 10 puede parecer que el sistema está inhalando ram, pero de hecho solo está tratando de ser más eficiente en el uso de ram. Los usuarios de Mac han estado utilizando una función similar desde 2013, y las versiones más nuevas del kernel de Linux emplean una versión de compresión de memoria. Este método de conservar memoria no solo es mejor, sino que ya es común entre otros sistemas operativos.