ferramentas de análise de perfil / performance de código para Windows CE / Móvel
-
05-07-2019 - |
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.
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
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.
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.