Optimizar el rendimiento: Aprovechar el hardware
Actualización: noviembre 2007
La arquitectura interna de WPF tiene dos canalizaciones de representación, la de hardware y la de software. En este tema se proporciona información sobre estas canalizaciones de representación a fin de ayudarle a tomar las decisiones relativas a la optimización del 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 está limitado por la representación: cuantos más píxeles se deben representar, mayor es el costo de rendimiento. Sin embargo, cuanta más representación se pueda descargar a la unidad de procesamiento de gráficos (GPU), mayores ventajas de rendimiento se pueden conseguir. La canalización de representación de hardware de las aplicaciones de WPF aprovecha plenamente las características de Microsoft DirectX en el hardware que admite como mínimo la versión 7.0 de Microsoft DirectX. Se puede obtener mayor nivel de optimización con hardware que admita las características de Microsoft DirectX versión 7.0 y de PixelShader 2.0+.
Canalización de representación de software
En la canalización de representación de software de WPF, la CPU impone la totalidad de la limitación. WPF aprovecha los conjuntos de instrucciones de SSE y SSE2 de la CPU para implementar un rasterizador de software optimizado con características completas. El recurso al software se realiza sin fisuras en cualquier momento en que no es posible representar las funcionalidades de la aplicación mediante la canalización de representación de hardware.
El principal problema de rendimiento que encontrará al representar en modo de software tiene que ver con la velocidad de relleno, que es el número de píxeles que se representan. Si le preocupa el rendimiento en el modo de representación de software, intente minimizar la cantidad de veces que se vuelve a dibujar un píxel. Por ejemplo, si tiene una aplicación con fondo azul que, a continuación, representa una imagen ligeramente transparente sobre él, se representarán dos veces todos los píxeles de la aplicación. Como resultado, se tardará el doble en representar la aplicación con la imagen que si tuviera únicamente el fondo azul.
Niveles de representación de gráficos
Puede ser muy difícil predecir la configuración de hardware en la que la aplicación se va a ejecutar. Sin embargo, puede ser conveniente estudiar un diseño que permita a la aplicación cambiar sin fisuras las características cuando se ejecute en distintos hardwares, para que pueda aprovechar al máximo cada configuración de hardware diferente.
Para lograrlo, WPF proporciona funcionalidades que permiten determinar la capacidad gráfica de un sistema en tiempo de ejecución. La capacidad gráfica se determina categorizando la tarjeta de vídeo en tres niveles de capacidad de representación. WPF expone una API que permite a una aplicación consultar el nivel de capacidad de representación. La aplicación puede tomar a continuación diferentes rutas de código en tiempo de ejecución en función del 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 se pueden utilizar 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 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 con los datos de los vértices 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 mezcla en un objeto gráfico 3D. El grado de compatibilidad con texturas múltiples viene determinado por el número de unidades de textura múltiple en el hardware gráfico.
El sombreador de píxeles, el sombreador de vértices y las características de texturas múltiples se utilizan para definir niveles de versión de DirectX específicos que, a su vez, se utilizan para definir los diferentes niveles de representación en WPF.
Las características del hardware gráfico determinan la capacidad de representación de una aplicación de WPF. El sistema 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 inferior a la versión 7.0.
Nivel de representación 1 Aceleración parcial del hardware gráfico. El nivel de versión de DirectX es mayor o igual a 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 gráficas utilizan la aceleración de hardware gráfico. El nivel de versión de DirectX es mayor o igual a la versión 9.0.
Para obtener más información sobre los niveles de representación de WPF, consulte Niveles de representación de gráficos.
Vea también
Conceptos
Optimizar WPF: Rendimiento de aplicaciones
Planear para mejorar el rendimiento de aplicaciones
Optimizar el rendimiento: Presentación y diseño
Optimizar el rendimiento: Imágenes y gráficos 2D
Optimizar el rendimiento: Comportamiento de objetos
Optimizar el rendimiento: Recursos de aplicación
Optimizar el rendimiento: Texto
Optimizar el rendimiento: Enlace de datos