Estou procurando um criador de perfil para encontrar o gargalo no meu código C ++. Gostaria de encontrar uma ferramenta de perfil gratuita, não intrusiva e boa. Sou desenvolvedor de jogos e uso o PIX para Xbox 360 e achei muito bom, mas não é gratuito. Conheço o Intel VTune , mas também não é gratuito.
224
Respostas:
O CodeXL agora substituiu o AMD Code Analyst da End Of Line e ambos são gratuitos, mas não tão avançados quanto o VTune. Há também Sleepy , que é muito simples, mas faz o trabalho em muitos casos.
fonte
Very Sleepy é um perfilador de CPU C / C ++ para sistemas Windows (gratuito).
O CppCheck é um criador de perfil de CPU C / C ++ estático para sistemas Windows (gratuito).
fonte
Proffy é bem legal: http://pauldoo.com/proffy/
Disclaimer: Eu escrevi isso.
fonte
Existe um perfilador de instrumentação (com precisão de função) para o MS VC 7.1 e superior chamado MicroProfiler. Você pode obtê-lo aqui (x64) ou aqui (x86) . Ele não requer modificações ou acréscimos ao seu código e é capaz de exibir estatísticas de funções com chamadores e callees em tempo real, sem a necessidade de fechar o aplicativo / interromper o processo de criação de perfil.
Ele se integra ao VisualStudio, para que você possa ativar / desativar facilmente a criação de perfil para um projeto. Também é possível instalá-lo na máquina limpa, basta que as informações do símbolo sejam localizadas junto com o executável sendo perfilado.
Essa ferramenta é útil quando a aproximação estatística de criadores de perfil de amostragem como Very Sleepy não é suficiente.
Comparações aproximadas mostram que ele supera o AQTime (quando é invocado na instrumentação, execução no nível da função). O programa a seguir (otimização total, inlining desativado) é executado três vezes mais rápido com o micro-profiler exibindo resultados em tempo real, do que com o AQTime simplesmente coletando estatísticas:
fonte
A Microsoft possui o Windows Performance Toolkit .
Requer Windows Vista, Windows Server 2008 ou Windows 7.
fonte
Uma nova adição é Shiny .
O que outras pessoas estão dizendo
fonte
Eu recomendo o Windows Performance Toolkit (WPT) ou XPERF
A ferramenta de linha de comando xperf da linha de comando registra logs de rastreamento de eventos para Windows (ETW) que podem ser analisados usando a ferramenta GUI xperfview.
O uso da argumentação de linha de comando stacktrace provou ser uma ferramenta inestimável para minha empresa, pois apresenta perfis e soluciona problemas de gargalos. Uma das coisas mais interessantes é que o WPT pode ser instalado em qualquer ambiente, mesmo no venerável Windows XP .
No Windows 8, o Windows Performance Analyzer leva o xperf a um nível ainda mais alto.
Os números concretos e as estatísticas fornecidas nos logs da ETW são incomparáveis em detalhes, exceto no visual studio profiler (2010/2012), que também é ótimo, mas não é um AFAIK gratuito.
Se você nunca usou o xperf ... não sabe o que está perdendo
fonte
Eu uso o AQTime, é uma das melhores ferramentas de criação de perfil que já usei. Não é gratuito, mas você pode obter uma avaliação de 30 dias. Portanto, se você planeja otimizar e criar perfis, apenas um projeto e 30 dias são suficientes para você, recomendo o uso deste aplicativo. ( http://www.automatedqa.com/downloads/aqtime/index.asp )
fonte
Por favor, tente meu profiler, chamado cRunWatch. São apenas dois arquivos, portanto, é fácil integrar-se aos seus projetos e requer a adição de exatamente uma linha para instrumentar um pedaço de código.
http://ravenspoint.wordpress.com/2010/06/16/timing/
Requer a biblioteca Boost.
fonte
Usei Luke Stackwalker e ele fez o trabalho para o meu projeto do Visual Studio.
Outros projetos interessantes são:
fonte
Eu uso o "TrueTime - parte do pacote DevPartner da Compuware há anos. Existe uma [versão gratuita] (você pode experimentar o Compuware DevPartner Performance Analysis Community Edition.) Disponível.
fonte
Eu uso o VSPerfMon, que é o StandAlone Visual Studio Profiler. Eu escrevi uma ferramenta GUI para me ajudar a executá-la e analisar os resultados.
http://code.google.com/p/vsptree/
fonte
Você pode usar o EmbeddedProfiler, é gratuito para Linux e Windwos.
O criador de perfil é intrusivo (por funcionalidade), mas não requer nenhuma modificação no código. Basta adicionar um sinalizador de compilador específico (-finstrument-functios para gcc / MinGW ou / GH for MSVC) e vincular a biblioteca do perfil. Ele pode fornecer uma árvore de chamadas completa ou apenas uma lista de funções. Possui sua própria interface gráfica de análise.
fonte