Pergunta

O que você sugere a melhor ferramenta ao perfil código C / C ++ e determinar quais partes estão tomando a maior parte do tempo. Atualmente, estou apenas contando com os registros, mas é claro que a informação não é precisa, desde atrasos desnecessários são introduzidos.

De preferência, a ferramenta também seria capaz de detectar / sugerir áreas que poderiam ser otimizados, se as houver ferramenta.

Plataforma: Linux

O pedido deve ser usado em um ambiente incorporado por isso deve ser leve e externo (não um plugin em algum IDE).

Foi útil?

Solução

Eu posso recomendar vivamente callgrind em combinação com KCachegrind .

Outras dicas

"gprof" em Linux / FreeBSD é uma ferramenta muito simples e eficiente para identificar quais rotinas estão monopolizando a CPU durante a execução. Dá tanto perfil aninhado e plana de funções. Ele lhe dá a percentagem de tempo de CPU tomada por cada função executada durante o tempo de execução do profiler, e também o percentual tomadas dentro da própria função, eo percentual tomadas por suas funções criança. Isso ajuda você facilmente segregar as funções ofensivas.

Eu fiz boas experiências usando o profiler do Microsoft Visual C ++, existem outros programas externos, como Intels VTune , também, mas a maioria deles não são livres.

Depende da plataforma. Se você estiver usando MSVC, algumas versões dele tem um profiler integrado. AMD e Intel ambos têm perfis disponíveis, bem como (CodeAnalyst e VTune).

No Linux, o único que eu usei é gprof, mas eu sei que há outros (e eu acho que os da AMD ou da Intel pode estar disponível em versões do Linux também)

E, claro, todo o conjunto Valgrind pode ser útil também. Algumas ferramentas como callgrind ou cachegrind pode dar-lhe um monte de informações sobre o desempenho.

Existem muitas ferramentas bom perfil para isso como quantificar ou KCachegrind. O único problema com essas ferramentas é que eles diminuir o desempenho tempo de execução assim por diante algumas grandes sistemas que podem não escalam bem o suficiente.

Às vezes é suficiente apenas para executar no depurador e pressionar ctrl-c, olhar para o rastreamento de pilha e repita este talvez 4 vezes.

Se você está sempre na mesma parte do código depois de ter encontrado onde você está gastando a maior parte do tempo.

Você quer claramente duas coisas:

  1. Para o perfil de seu código e medi-lo.

  2. Para detectar áreas que poderiam ser otimizados.

Estes são problemas diferentes. Eles não são os mesmos, apesar do que você pode ter sido dito.

Para o problema será sugerido (1) muitas profilers boas.

Para o problema (2) profilers ajudar apenas indiretamente.
Há uma técnica muito mais simples e geralmente mais eficaz.

Olhe aqui

Eu vou ir com gprof / oprofile, se estamos falando sobre o mundo UNIX.

Você precisa recompilar seu aplicativo (pelo menos com gprof).

gprof

Oprofile

Se você estiver no Windows, sugiro AQTime . Suporta quase todos os compilador lá fora, incluindo .NET, Delphi e VB (e todos os compiladores C ++, é claro (;..) E é apenas o melhor ferramenta de perfil que eu já tentei E não é só um profiler desempenho

Para medições de desempenho oprofile é uma boa escolha como existe um plugin amigável para eclipse no Ferramentas Linux Projeto .

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