Su mejor apuesta en Windows 8.1 y superior es el proveedor Microsoft-Windows-Kernel-Memory, que registra la información de memoria por proceso cada 0.5 s. Ver https://github.com/google/UIforETW/issues/80 para más detalles. UIforETW habilita esto de forma predeterminada cuando está disponible.
También puede probar el proveedor de MEMINFO. Ofrece una visión general de todo el sistema de la presión de la memoria. Muestra la lista activa (memoria actualmente en uso), la lista de espera (páginas 'útiles' que no están actualmente en uso, como la memoria caché de disco) y las listas cero y gratuito (memoria genuinamente libre). Esto al menos le permite saber si un sistema se está quedando sin memoria.
También podría probar MEMINFO_WS y CONTMEMGEN, pero estos no están documentados, así que realmente no sé lo que hacen. Aparecen en xperf -providers k pero cuando grabo con ellos no puedo ver ningún gráfico nuevo que aparezca. Aparentemente Microsoft envía estos proveedores pero no hay forma de verlos. Suspiro ...
Si desea más detalles de la memoria en Windows 7, como los conjuntos de trabajo por proceso, su mejor opción es tener un proceso en ejecución que periódicamente consulte estos datos y los emita en eventos ETW personalizados. Esto está disponible en un formulario preempaquetado en UIforETW que puede consultar el conjunto de trabajo de un conjunto específico de procesos una vez por segundo. Consulte la publicación del anuncio de cómo obtener UIforETW: https://randomascii.wordpress.com/2015/04/14/uiforetw-windows-performance-made-easier/
Los datos del conjunto de trabajo de Windows 7 de UIforETW aparecen en Eventos genéricos en Nombre de tarea == Grupo de trabajo. En Windows 8.1, se muestra el conjunto de datos de funcionamiento del sistema operativo (más detallado, más eficientemente registrado) en Memoria-> Instantáneas de memoria virtual.
Sí, puede capturar una gran cantidad de datos, pero ¿cómo lo hacemos para * mostrar * esos datos, o extraerlos de otra manera? En particular, no puedo encontrar ninguna forma de mostrar los datos de MEMINFO_WS. En la sección Memoria de WPA, puedo ver la Utilización de la memoria (listas activas/modificadas/etc.), las fallas duras, las duraciones del Comando VirtualAlloc, los gráficos de grupo y el conjunto de residentes. El conjunto residente parece el más útil, pero parece mostrar información de REFSET, entonces, ¿qué muestra MEMINFO_WS? –
El Conjunto residente solo parece captar una instantánea al final de la traza, por lo que es deficiente para detectar tendencias en el transcurso de una traza. Creo que realmente necesitamos datos de MEMINFO_WS. –