Optimizar el rendimiento: Aprovechar el hardware

La arquitectura interna de WPF tiene dos canalizaciones de representación, hardware y software. En este tema se proporciona información sobre estas canalizaciones de representación para ayudarle a tomar decisiones sobre las optimizaciones de rendimiento de las aplicaciones.

Canalización de representación de hardware

Uno de los factores más importantes para determinar el rendimiento de WPF es que se enlaza a la representación, cuantos más píxeles tenga que representar, mayor será el coste de rendimiento. Sin embargo, cuanto más representación se pueda descargar en la unidad de procesamiento de gráficos (GPU), más ventajas de rendimiento puede obtener. La canalización de representación de hardware de la aplicación WPF aprovecha al máximo las características de Microsoft DirectX en el hardware que admite un mínimo de Microsoft DirectX versión 7.0. El hardware puede obtener más optimizaciones que admiten características de Microsoft DirectX versión 7.0 y PixelShader 2.0+.

Canalización de representación de software

La canalización de representación de software de WPF está completamente enlazada a la CPU. WPF aprovecha los conjuntos de instrucciones SSE y SSE2 en la CPU para implementar un rasterizador de software optimizado y completo. La reserva al software es perfecta siempre que no se pueda representar la funcionalidad de la aplicación mediante la canalización de representación de hardware.

El mayor problema de rendimiento que encontrará al representar en modo de software está relacionado con la velocidad de relleno, que se define como el número de píxeles que se van a representar. Si le preocupa el rendimiento en el modo de representación de software, intente minimizar el número de veces que se vuelve a dibujar un píxel. Por ejemplo, si tiene una aplicación con un fondo azul, que luego representa una imagen ligeramente transparente sobre ella, se representarán todos los píxeles de la aplicación dos veces. Como resultado, la aplicación tardará dos veces en representar la aplicación con la imagen que si solo tuviera el fondo azul.

Niveles de representación de gráficos

Puede ser muy difícil predecir la configuración de hardware en la que se ejecutará la aplicación. Sin embargo, es posible que quiera considerar un diseño que permita a la aplicación cambiar sin problemas las características al ejecutarse en un hardware diferente, de modo que pueda aprovechar al máximo cada configuración de hardware diferente.

Para ello, WPF proporciona funcionalidad para determinar la funcionalidad de gráficos de un sistema en tiempo de ejecución. La funcionalidad de gráficos se determina mediante la categorización de la tarjeta de vídeo como uno de los tres niveles de funcionalidad de representación. WPF expone una API que permite a una aplicación consultar el nivel de funcionalidad de representación. La aplicación puede emprender diferentes rutas de código en tiempo de ejecución según el nivel de representación que admita el hardware.

Las características del hardware gráfico que más afectan a los niveles de representación son:

  • RAM de vídeo La cantidad de memoria de vídeo en el hardware gráfico determina el tamaño y el número de búferes que puede utilizarse para la composición de gráficos.

  • Sombreador de píxeles Un sombreador de píxeles es una función de procesamiento de gráficos que calcula los efectos píxel por píxel. Según la resolución de los gráficos mostrados, puede haber varios millones de píxeles que deban procesarse en cada fotograma mostrado.

  • Sombreador de vértices Un sombreador de vértices es una función de procesamiento de gráficos que realiza operaciones matemáticas en los datos de vértice del objeto.

  • Compatibilidad con texturas múltiples La compatibilidad con texturas múltiples hace referencia a la capacidad de aplicar dos o más texturas distintas durante una operación de combinación en un objeto gráfico 3D. El grado de compatibilidad con texturas múltiples queda determinado por el número de unidades de múltiples texturas en el hardware gráfico.

Las características de sombreador de píxeles, sombreador de vértices y multitextura se usan para definir niveles de versión específicos de DirectX, que, a su vez, se usan para definir los distintos niveles de representación en WPF.

Las características del hardware gráfico determinan la capacidad de representación de una aplicación WPF. El sistema de WPF define tres niveles de representación:

  • Nivel de representación 0 Sin aceleración de hardware gráfico. El nivel de versión de DirectX es mayor que la versión 7.0.

  • Nivel de representación 1 Aceleración parcial de hardware gráfico. El nivel de versión de DirectX es mayor o igual que la versión 7.0 y menor que la versión 9.0.

  • Nivel de representación 2 La mayoría de las características de gráficos utiliza la aceleración de hardware gráfico. El nivel de versión de DirectX es mayor o igual que la versión 9.0.

Para obtener más información sobre los niveles de representación de WPF, vea Niveles de representación de gráficos.

Vea también