requisitos leak juego descargar windows memory-leaks ram

windows - leak - ¿Cuál es la diferencia entre el conjunto de trabajo y el tamaño de compromiso?



memory leak windows 10 (2)

A partir de aquí , el conjunto de trabajo es:

... un recuento de memoria física (RAM) en lugar de espacio de direcciones virtuales. Representa el subconjunto del espacio de direcciones virtuales del proceso que es válido, lo que significa que se puede referenciar sin incurrir en un error de página.

El tamaño de compromiso es:

la cantidad total de espacio de direcciones virtuales paginable para el que no se asigna ningún almacén de respaldo distinto del archivo de paginación. En los sistemas con un archivo de paginación, se puede considerar como el uso potencial máximo del archivo de paginación. En los sistemas sin archivo de paginación, todavía se cuenta, pero todo ese espacio de direcciones virtuales debe permanecer en la memoria física (RAM) en todo momento.

Así que puede pensar en el conjunto de trabajo como la cantidad de memoria física utilizada, mientras que el tamaño de compromiso indica la cantidad de memoria virtual utilizada (sin cosas como archivos DLL o archivos mapeados en memoria, que pueden estar respaldados por archivos que no sean el archivo de página).

Dicho esto, estos números no son generalmente útiles cuando se trata de encontrar "pérdidas de memoria" en .NET. En su lugar, debe utilizar perfiles de memoria de terceros.

Al depurar errores de OOM, ¿cuál es la diferencia entre el conjunto de trabajo y el tamaño de compromiso? Especialmente, ¿cuál es el significado exacto para el tamaño de compromiso?


Committed Memory o Commit Charge es toda la RAM que la CPU ha asignado, con la que ha trabajado o con la que está trabajando para ejecutar las aplicaciones y el sistema operativo.

Es una carga de plataforma total, que refleja el uso real de la memoria, o la falta de memoria RAM cuando el archivo de página entra para jugar. Ese límite de compromiso es igual a la RAM instalada (menos hardware reservado) o el archivo de la página RAM + debe ser autoexplicativo al considerar lo anterior :)

Working Set no es una medida del uso de la memoria.

Working Set es el nivel de prioridad dado a los datos en la RAM que no se pueden paginar para aliviar la presión de la memoria.

El conjunto de trabajo para un proceso es asignado dinámicamente por el Administrador de memoria del sistema operativo (Balance Manager).

https://msdn.microsoft.com/en-us/library/bb742613.aspx

Ajuste del rendimiento del sistema de Windows

El WS mínimo más alto permitido para los procesos de 32 bits es de 4 GB, para los procesos de 64 bits es de 8 GB. Es solo la cantidad mínima de RAM garantizada para una aplicación, el uso real puede y generalmente es mucho mayor.

Esto es particularmente cierto con aplicaciones de 32 bits en hardware de 64 bits. Cualquier cosa superior a 4 GB no se refleja en el conjunto de trabajo, porque está en la lista de espera.

Por ejemplo, Fallout New Vegas (una aplicación de 32 bits) con un montón de mods puede comer 9 GB de RAM, 5 GB estarán en la lista de espera.

Es fácil verificar qué datos se encuentran en la RAM a través de herramientas de terceros (como Systernals).

Nota: Los datos almacenados en caché no se cuentan contra el Límite de compromiso (generalmente archivos abiertos desde el HDD).

En caché y en espera se enjuaga primero para revivir la presión de la memoria. Ninguna de las dos opciones es ideal en realidad. Es mejor tener más memoria RAM que ninguna memoria libre. Para eso es la RAM: almacenamiento de datos en caché.

Commit Charge es también una buena forma de medir los requisitos mínimos de RAM para una máquina en particular. Con el PF activado si Commit es mayor que RAM, la diferencia es la cantidad de RAM que necesita.

IBM describe la memoria comprometida como memoria del sistema consumida .

( https://www.ibm.com/support/knowledgecenter/en/SSEPGG_9.7.0/com.ibm.db2.luw.qb.server.doc/doc/c0057140.html )

Windows Internals describe las páginas comprometidas como páginas que finalmente se traducen en memoria física

( Microsoft Windows Internals Sexta edición , Capítulo 10: Administración de memoria p.195)

AMD define Commit como irrevocablemente para escribir una instrucción completa en la memoria física .

(http: / developer.amd.com/wordpress/media/2012/10/24593_APM_v21.pdf)

Toda la RAM y el archivo de paginación combinados en el contexto del sistema operativo es memoria virtual.

Cada dirección virtual debe traducirse en almacenamiento físico. Si no lo hace, pueden ocurrir errores (punteros nulos, etc.).

El "Proceso de trabajo del conjunto" es lo que el proceso conoce como RAM.

Un objeto de sección es el espacio de almacenamiento físico total que puede ver la CPU. Si el almacenamiento es RAM o HDD es irrelevante. En el hardware de 32 bits, un objeto de sección es de 4 GB. En hardware de 64 bits es 256TB.
Un "segmento" define un caché virtual y "Working Set" define el nivel de caché.

https: // i.stack.imgur.com/9rZEW.jpg

Nota: **** Los blogs de Technet / MSDN hacen referencia a los objetos de la sección como "backing store" o "secciones respaldadas por archivos de paginación" cuando se habla de límites de memoria.

"En general" (: P) estos blogs se publicaron hace casi 10 años. (Un momento en que Intel intentaba impulsar a AMD al terreno y Microsoft acababa de lisiar a XP / Vista 32 mientras promovía x64. Muchos conocerán la historia (: P).

x86-32 incluye IA-32 y K7, los cuales son ahora dinosaurios.

AMD64 llegó con K8. Intel64 con C2D.

Intel afirma que una instrucción comprometida puede revertirse y aplazarse. Asumiría que la retrotracción se debe a HT y los medios diferidos se difieren hasta que el archivo de intercambio pueda liberar RAM (lo estudiaremos). Arquitecturas Intel® 64 e IA-32 Manual del desarrollador de software Volumen 3B: Guía de programación del sistema, Parte 217-10

Los ingenieros a veces se refieren a Commit Charge como "Sistema de trabajo del sistema" o "Conjunto de trabajo de la CPU".

Informes del sistema de trabajo del sistema y del administrador de tareas.

https: //msdn.microsoft.com/en-us/library/bb742613.aspx

Las páginas en la RAM a las que hace referencia una CPU nunca deben enjuagarse en el disco porque siempre existe la posibilidad de que la CPU vuelva a hacer referencia a estas páginas, y la memoria RAM es caché. Los ingenieros de sistemas o aquellos que se ocupan de servidores ya lo saben bien.

En teoría, un objeto de sección podría ser 128TB -256TB en hardware de 64 bits. Si un proceso de 32 bits alcanza un límite de segmento de 4 GB, la CPU apunta a otro segmento virtual en la RAM (puntero lejano) y continúa el transporte por carretera.

Nada ha cambiado, al menos por el lado del hardware.

Aquí es donde la API de 32 bits tiene un déficit. Se supone que las páginas a las que hace referencia un proceso de 32 bits, pero que están fuera de su Conjunto de trabajo de 4 GB, están en un archivo de paginación incluso cuando no hay un archivo de paginación presente.

Las páginas se agregan a En espera o en caché como archivos mapeados en memoria (esto se puede ver con RAMMap).