Como posso criar o perfil de meu aplicativo Android? [fechadas]


93

Preciso descobrir onde estão os gargalos em meu aplicativo Android.

Quais ferramentas ou técnicas de criação de perfil posso usar?


Não estou familiarizado com o Android. Você pode executar o aplicativo em um depurador que pode ser interrompido? Em caso afirmativo, este método funciona: stackoverflow.com/questions/375913/…
Mike Dunlavey

Mmm, interessante. Um pouco trabalhoso, mas potencialmente útil para detectar os problemas de desempenho mais evidentes. Obrigado.
terça

Eu entendo como você pode pensar assim: stackoverflow.com/questions/2624667/…
Mike Dunlavey,

Hoje em dia você pode fazer bons perfis dentro do Eclipse. Esqueça o lançamento autônomo / manual do TraceView, etc. Espero escrever um artigo no blog sobre isso, com mais detalhes. Envie-me um ping se precisar de mais detalhes.
KarolDepka

2
Você sugere que há algo melhor do que TraceView ou DDMS. O que é isso?
Peri Hartman

Respostas:


37

Você pode usar o Traceview. Está longe do ideal, mas funciona. Este artigo descreve como usá-lo.


2
Quando eu executo isso, ele diz que a versão da linha de comando está obsoleta e então sai. Qual é o novo método?
gonzobrains


11

Depende do que você vai testar.

Caso você desenvolva aplicativos para Android, experimente a classe TimingLogger. Dê uma olhada em neste artigo que descreve o uso da classe auxiliar TimingLogger.

Uma ferramenta muito boa é o JMeter e há um plugin para Android .

se você não quiser usar ferramentas externas, mas de uma forma bem padronizada, para medir o tempo decorrido, deve usar System.nanoTime (). Não se deve usar o currentTimeMillis, pois mede o tempo do relógio de parede e, como nenhum relógio de computador é perfeito (todos ocasionalmente precisam ser corrigidos) há um processo que roda e emite continuamente pequenas correções no relógio do sistema. Sem mencionar a correção do segundo bissexto.

Embora currentTimeMillis seja freqüentemente usado, ainda é incorreto medir o tempo decorrido e o tempo. De qualquer forma, como a chamada leva algum tempo, você não deve esperar cronometrar corretamente intervalos muito pequenos. Mas isso não deve ser um problema para trabalhar com Android.

Vou te mostrar um exemplo:

long startTime = System.nanoTime();

// run/call the method

long endTime = System.nanoTime();
long diff = endTime - startTime ;
System.out.println("Elapsed milliseconds: " + diff /1000000);

Você também pode dar uma olhada nesta biblioteca gratuita: http://jetm.void.fm/ .

Você também pode encontrar o tutorial do JMeter .


Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.