2011-02-01 18 views

Respuesta

29

Los contadores de rendimiento y ETW son tecnologías distintas. Los contadores de rendimiento no están expuestos a través de ETW.

La diferencia básica: contadores de rendimiento proporcionan métricas de alto nivel sobre el comportamiento del sistema (contadores de tiempo de reflexión y de bytes leídos y objetos asignados), mientras que ETW es una función de seguimiento y registro de diagnóstico (piensa Debug.WriteLine mensajes, pero más rica y más estructurado).

Actualmente, tanto ETW como los contadores de rendimiento tienen soporte completo de Windows, y como desarrollador, puede escribir código para producir y consumir datos para ambas tecnologías.

contadores de rendimiento

Performance counters, también conocidos como PDH (Rendimiento Ayudante de datos) contadores, son indicadores numéricos simples que le dan un resumen de alto nivel de cómo un sistema en particular se está comportando. Por ejemplo, % Processor Time es un contador de rendimiento que le dice cuánto del tiempo del procesador se está utilizando para ejecutar el código de modo de usuario. Como ejemplo más complejo, # of Methods Jitted en la categoría .NET CLR Jit indica cuántos métodos .NET se compilaron JIT desde el inicio de una aplicación.

Los contadores de rendimiento se utilizan generalmente para controlar el estado del sistema y para diagnosticar problemas de rendimiento específicos. Son un buen indicador de problemas cuando algo va mal, pero no le dan muchos detalles sobre por qué está ocurriendo un problema en particular.

Para ver los contadores de rendimiento de Windows, simplemente puede ejecutar perfmon. En Vista +, es posible que deba hacer clic en el nodo "Monitor de rendimiento" para ver el gráfico del contador. Para acceder mediante programación a los contadores de rendimiento, consulte la clase System.Diagnostics.PerformanceCounter en .NET o PDH library para obtener el código nativo.

seguimiento de eventos para Windows (ETW)

ETW es un sistema de seguimiento integrado en Windows. Esencialmente, cualquier componente (por ejemplo, una aplicación de usuario, o incluso el kernel de Windows mismo) puede enviar información de rastreo de diagnóstico sobre eventos específicos que le preocupan al componente. Por ejemplo, el kernel envía eventos ETW cuando un proceso se inicia y se detiene, cuando una imagen (por ejemplo, DLL) se carga y descarga, cuando se crea o se destruye un hilo, o incluso cuando un hilo hace un cambio de contexto. Los datos registrados están en un formato serializado que es descrito por el componente en otro lugar, permitiendo que las herramientas de diagnóstico lean y entiendan los eventos ETW registrados durante una sesión. Consulte here para obtener un diagrama de cajas y líneas de cómo funciona todo junto.

ETW está destinado a ser rápido y no debe afectar significativamente el rendimiento del sistema cuando el registro no está habilitado. A partir de Vista, ETW es generalizado en todo Windows y está destinado a los desarrolladores de aplicaciones (es decir, específicamente, su aplicación puede ser un proveedor de ETW que registra eventos). ETW es la base del registro de eventos, y puede ser utilizado por perfiladores de rendimiento, depuradores o monitores de sistema.

Vea mi otra publicación SO here para algunos recursos en la interconexión con ETW.

5

Parece que basado en this document comenzando en Vista + los contadores de rendimiento tienen una fachada ETW para que puedan ser consumidos exactamente de la misma manera que ETW.

La nueva biblioteca de contador de rendimiento (PERFLIB versión 2.0) incluido en Windows Vista® ofrece una serie de ventajas a la promotora, incluyendo:

un mecanismo estándar de comunicación entre procesos (IPC) entre un proveedor y el consumidor que se basa en la notificación de Seguimiento de eventos para Windows (ETW) y que da como resultado un desarrollo simplificado y un código más uniforme y confiable.

enter image description here

Cuestiones relacionadas