Pergunta

Quais as ferramentas que você sabe, com excepção daquelas em Visual Studio, para analisar gargalos de desempenho em um aplicativo do Windows CE / Mobile? Eu estou procurando algo como AQTime para CE / Mobile, ao perfil aplicações C / C ++ compilados para código nativo.

Foi útil?

Solução

Eu não encontrei qualquer dessas ferramentas para WindowsMobile para o desenvolvimento nativo.

O mais próximo que eu encontrei você é o conjunto de ferramentas Entrek (CodeSnitch / ProcMan), mas eles não são realmente de perfil ferramentas. http://www.entrek.com/products.htm

O que fizemos fazer é construir próprio sustento próprio profiling em nossos próprios produtos usando o Vistual Studio "/ callcap" switch para VC ++. Usando essa opção, você pode construir uma biblioteca de perfis que despeja horários e contagens, o que quiser. Ele trabalha principalmente bem para nós, mas às vezes a sobrecarga destas funções de gancho pode ser demais e isso pode distorcer os resultados de cronometragem para áreas de grande número de chamadas de função.

A partir do MSDN Docs:

A opção / callcap faz com que o compilador para inserir chamadas para perfilar ganchos no início e no final de cada função.

Você deve compilar ganchos de perfil sem a opção callcap. Se vocês compilar as funções de gancho de perfil com o interruptor callcap, as funções irá realizar chamadas recursivas infinitas para si mesmos.

O seguinte exemplo de código, Callcaphooks.c, mostra um gancho de perfil função, _CAP_Enter_Function, para compilação sem callcap.

// File: callcaphooks.c

#include <stdio.h>
int main();

void _CAP_Enter_Function(void *p) 
{
    if (p != main) 
        printf("Enter function   (at address %p) at %d\n", 
            p, GetTickCount());
        return;
}
void _CAP_Exit_Function(void *p) 
{
    if (p != main) 
        printf("Leaving function (at address %p) at %d\n", 
            p, GetTickCount());
    return;
}

Outras dicas

Windows CE suporta a chamada Profiler remoto (se o OEM acrescentou suporte para ele) para fora da caixa. imagens WinMo, creio eu, normalmente têm apoio já nas imagens para ele. Para CE, é necessário o conjunto ambiente IMAGEPROFILER variável (usnder as propriedades do projeto).

O que não está claro no MSDN é como instrumento de um aplicativo que não é construído com Platform Builder, mas é realmente muito simples. Você tem que adicionar o / callcap swith para a linha de comando do compilador e cecap.lib adicionar à sua configurações do vinculador.

É claro que você vai precisar de uma ferramenta para capturar e exibir os dados de perfil. Para isso você pode usar a versão de avaliação do Platform Builder ( 5.0 ou 6.0 ) (o eval é livre) ou eVC 4.0 (também gratuito).

Para mais informações sobre o uso do profiler, Sue Loh da equipe do núcleo CE tem escrevi um pouco sobre isso.

Eu escrevi um profiler Gráfico de chamada para o Windows Mobile. É atualmente (a partir de Jan 2010) na fase Beta, e pode ser baixado gratuitamente.

http://www.codeprophet.co.cc

HTH

-Zak

Se você está fazendo o desenvolvimento .NET CF, consulte a Power Toys para .NET CF 3.5 para utilitários que podem ajudar a identificar gargalos, especialmente os relacionados à memória.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top