Compartilhar via


Display Driver Performance Profiling

Windows Mobile Not SupportedWindows Embedded CE Supported

9/8/2008

Você pode usar o utilitário DispPerf para o desempenho do seu driver exibir perfil.

DispPerf cria uma tabela que lista o seguinte para cada codificar operação de varredura (ROP) que é profiled:

  • Contagem de freqüência
  • Tempo decorrido em microssegundos
  • Média de tempo decorrido em microssegundos

A tabela é específico para ROPs manipulados pela emulação GPE usar como padrão, pela biblioteca de emulação de software e pelo hardware acelerações.

A medida horários com precisão, DispPerf pode ser usado somente em executar - tempo imagens que suporte QueryPerformanceCounter e QueryPerformanceFrequency Com uma resolução recomendada de microsecond 1.

Todos os drivers em demonstrar a árvore %_WINCEROOT%\Public\Common\OAK\Drivers\Display como usar o Profiler para medir desempenho de blits e Line Drawing. Você pode estender o Profiler a medida de desempenho de funções exibir adicionais.

A seguinte tabela mostra onde o codificar origem existe para o ATI e DispPerf exibir drivers.

Driver ou utilitário Diretório

DispPerf

%_WINCEROOT%\Public\Common\OAK\Drivers\Display\DispPerf

ATI

%_WINCEROOT%\Public\Common\OAK\Drivers\Display\ATI

O driver é iniciado perfil das operações blit cores durante a chamar para o BltPrepare função quando ele chama o DispPerfStart função.

O seguinte exemplo de código mostra como o driver ATI, que é usado como o driver exemplo em toda esta seção, inicializa sua ponteiro de função exibir para usar a emulação usar como padrão fornecida pelo GPE.

SCODE 
ATI::BltPrepare(GPEBltParms *pBltParms)
{
DispPerfStart (pBltParms->rop4);
pBltParms->pBlt = EmulatedBlt; // Catch all

Quando o driver pode identificador de ROP com aceleração hardware ou software emulação, ele altera seu ponteiro de função exibir apropriadamente. O driver também chama o DispPerfType função para qual tipo de aceleração é usado para registro identificador de ROP.

O seguinte exemplo de código mostra como o driver chama DispPerfType Após o driver define a ponteiro de função exibir como uma função hardware acelerado.

// Performance Logging Type
if (pBltParms->pBlt != EmulatedBlt) {
DispPerfType(DISPPERF_ACCEL_HARDWARE);
}

Quando concluir a operação blit de cores, o BltComplete função pára perfil com um chamar para o DispPerfEnd função.

Os controles variável de ambiente DO_DISPPERF se a codificar para suporte perfil é compilado para o driver exibir.

Para saber como o variável de ambiente faz com que as diretivas corretas compilador seja definido, consulte o arquivo fontes para o driver ATI.

DispPerf pode ser chamado a partir de prompt de comando em uma plataforma baseado em Windows Embedded CE, ou ele pode ser iniciado remotamente da ferramenta Debug Shell Windows Embedded CE.

O seguinte exemplo de código mostra a sintaxe de comando para DispPerf.

dispperf [-c[w*]] [-d [> file]]

O -c opção limpa a reserva do gerador de perfil. Se a letra w Aparece um ou mais vezes seguinte a -c DispPerf opção, chama o CreateWindow função desse número de vezes e perfis as operações driver exibir resultante.

O -d opção exporta a saída reserva Profiler na forma tabular. Se a pasta -d opção é seguida por > e um nome arquivo, a saída será gravada para o nomeado arquivo; caso contrário, ele aparece no console onde o comando foi emitido.

O seguinte exemplo de código mostra como DispPerf limpa sua reserva de todas as informações de perfil.

Dispperf –cwwwwwd

Chamadas Dispperf o CreateWindow função cinco vezes, o desempenho das funções de exibir perfil.

O seguinte exemplo de código mostra como DispPerf exibe sua tabela de perfis informações para o console.

Dispperf –c
Pword stat_rpt.pwd
Dispperf –d > results.txt

Neste exemplo, DispPerf limpa sua reserva de todas as informações de perfil. Microsoft® Word é executado e, em seguida, abre o documento Stat_rpt.pwd. DispPerf rastreia as funções exibir Perfis e grava sua tabela de perfis informações para o arquivo Results.txt.

Os resultados da DispPerf

A seguinte tabela fornece descrições para os dados mostrados na principais colunas da tabela saída do DispPerf. Todos os drivers exibir exemplo incluídos com Windows CE .NET 4.2 ou posterior são aplicados para suporte essas métricas.

Título Descrição

RopCode

As operações de varredura chamado durante a executar perfil.

O hexadecimal valores esta coluna são relacionado aos valores codificar GDI ROP, a seguinte fórmula, onde RopCode é o valor relatado pelo DispPerf e ROP3 é o valor em hexadecimal coluna no Operações de varredura ternários.

RopCode = ((ROP3 & 0x00ff0000 >> 16) | (ROP3 & 0xff0000 >> 8))

cTotal

O número total de vezes um ROP foi chamado.

cGPE

O número de vezes um ROP foi chamado de uma função GPE.

Para obter mais informações, consulte Classes base GPE.

dwGPETime

A quantidade total de tempo, em microssegundos, gasto em uma ROP de chamadas GPE.

Avg.GPETime

O médio quantidade de tempo, em microssegundos, para um ROP quando chamado a partir GPE.

cEmul

O número de vezes um ROP foi chamado de uma função biblioteca de emulação BitBlt.

Para obter mais informações, consulte Funções da biblioteca de emulação BitBlT.

dwEmulTime

A quantidade total de tempo, em microssegundos, gasto em uma ROP de BitBlt emulação biblioteca função chamadas.

Avg.EmulTime

O médio quantidade de tempo, em microssegundos, para um ROP quando chamado de uma função biblioteca de emulação BitBlt.

cHardware

O número de vezes um ROP foi chamado de hardware.

dwHardwareTime

A quantidade total de tempo, em microssegundos, gasto em uma ROP de chamadas hardware.

Avg.HardwareTime

O médio quantidade de tempo, em microssegundos, para um ROP quando chamado de hardware.

A seguinte tabela mostra os significados dos títulos de coluna adicionais na tabela saída do DispPerf. Os drivers exibir exemplo que estão incluídos Windows CE .NET 4.2 ou posterior não são aplicados para suporte essas métricas.

Título Descrição

Tempo_de_espera

O tempo, em microssegundos, gasto na função WaitForNotBusy Durante uma ROP.

Pesquisa de cores

O número de blits que exigido uma pesquisa de um paleta de cores.

Converter cores

O número de blits que exigido uma conversão cor.

Fonte em vídeo mem

O número de blits que tinham a superfície origem no vídeo memória

Destino em vídeo mem

O número de blits que tinham a superfície destino no vídeo memória.

Cor preta

Este é o número de vezes em uma cor sólida do preto foi usado.

Cores em branco

Este é o número de vezes em uma cor sólida do branco foi usado.

Alongar Blt

O número de blits que exigido esticar ou reduzindo.

Blt transparente

O número de blits que tinha um transparente cor.

See Also

Concepts

FLAT Sample Display Driver
ATI Sample Display Driver
ATI Sample Display Driver Optimization
Sample DrvEscape Function
Sample Blit Acceleration
Display Driver Registry Settings
Display Driver Development Concepts
Display Driver Extensions
Display Driver Recommendations

Other Resources

Kernel Profiler