Otimizando o desempenho: Levando vantagens de hardware
A arquitetura interna de WPF possui duas tubulações de processamento, hardware e software. Este tópico fornece informações sobre esses pipelines de processamento para ajudá-lo a tomar decisões sobre otimizações de desempenho de seus aplicativos.
Pipeline de processamento de hardware
Um dos fatores mais importantes na determinação do desempenho WPF é atrelado à renderização — quanto mais os pixels você tem para renderizar, quanto maior o custo desempenho. No entanto, quanto mais renderização que ser transferida para o unidade de processamento gráfico (GPU), maiores os benefícios de desempenho que você pode obter. O pipeline de processamento de hardware do aplicativo WPF aproveita todas as vantagens dos recursos Microsoft DirectX no hardware que suporta um mínimo de Microsoft DirectX versão 7.0. Outras otimizações podem ser obtidas um hardware que oferece suporte ao Microsoft DirectX versão 7.0 e PixelShader 2.0 + recursos.
Pipeline de processamento de software
The WPF pipeline de renderização de software é totalmente limite à CPU. WPF aproveita a instrução SSE e SSE2 define a CPU para implementar um rasterizador otimizada e completa de software. Voltar para o software é inevitável em qualquer hora que uma funcionalidade do aplicativo não pode ser processada usando o pipeline de processamento de hardware.
O maior problema de desempenho que você encontrará será quando o processamento no modo de software está relacionado a taxa de preenchimento, que é definida pelo número de pixels que você está processamento. Se você estiver preocupado sobre o desempenho no modo de processamento de software, tente minimizar o número de vezes que um pixel é redesenhado. Por exemplo, se você tiver um aplicativo com um plano de fundo azul, que, em seguida, processa uma imagem levemente transparente sobre ele, você irá processar todos os pixels no aplicativo duas vezes. Como resultado, ele irá levar o dobro para processar o aplicativo com a imagem do que se você tivesse apenas o plano de fundo azul.
Níveis de Renderização Gráfica
Pode ser muito difícil de prever a configuração de hardware que seu aplicativo será executado. No entanto, convém considerar um design que permite que seu aplicativo alternar recursos ao executar em outro hardware, para que ele possa tirar proveito total de cada configuração de hardware diferente.
Para fazer isso, WPF fornece funcionalidade para determinar a capacidade de elementos gráficos de um sistema em tempo de execução. Recursos gráficos é determinado pela categorização a placa de vídeo sistema autônomo um dos três níveis de capacidade de renderização. WPF expõe um API que permite que um aplicativo para o nível de capacidade de renderização da consulta. Seu aplicativo pode então executar caminhos de código diferente em tempo de execução dependendo da camada de processamento suportado pelo Hardware.
As características do hardware gráfico que mais impactam os níveis de renderização são:
Video RAM A quantidade de memória de vídeo no hardware gráfico determina o tamanho e número de buffers que podem ser utilizados para compor gráficos.
Pixel Shader É uma função de processamento de gráfico que calcula efeitos pixel por pixel. Dependendo da resolução dos gráficos exibidos, pode haver muitos milhões de pixels que precisam ser processados para cada quadro de exibição.
Vertex Shader É uma função de processamento gráfico que realiza operações matemáticas nos dados de vértice do objeto.
Multitexture Support Refere-se à capacidade de aplicar duas ou mais texturas distintas durante uma operação de blending (mesclagem) em um objeto gráfico 3D. O grau de suporte multitextura é determinado pelo número de unidades de multitextura no hardware g?afico.
As características de pixel shader, vertex shader e multitextura são utilizadas para definir níveis específicos de versão DirectX que, por sua vez, são utilizados para definir os diferentes níveis de renderização em WPF.
As características do hardware gráfico determinam a capacidade de renderização da aplicação WPF. O sistema WPF define três níveis de renderização:
Nível de Renderização 0 Nenhuma aceleração por hardware gráfico. O nível de versão DirectX é menor que versão 7.0.
Nível de Renderização 1 Aceleração parcial por hardware gráfico. O nível da versão de DirectX é maior que ou igual a versão 7.0 e lesser que versão 9.0.
Nível de Renderização 2 A maioria das características gráficas utiliza aceleração por hardware. O nível de versão DirectX é maior ou igual a 9.0.
Para obter mais informações sobre as camadas de renderização do WPF, consulte Níveis de Renderização Gráfica.
Consulte também
Conceitos
Optimizing WPF Application Performance
Planejando para desempenho de aplicativos
Otimizando o desempenho: Layout and Design
Otimizando o desempenho: 2D Graphics and Imaging
Otimizando o desempenho: Comportamento de objeto
Otimizando o desempenho: Recursos do aplicativo
Otimizando o desempenho: Texto
Otimizando o desempenho: Ligação de Dados