Qual é o melhor perfilador de C ++ gratuito para Windows? [fechadas]


224

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.


O VTune parece estar livre agora: software.intel.com/en-us/vtune . Eu baixei a edição da comunidade e faz um ótimo trabalho na criação de perfil C ++ como o código C # bem como gerenciado
Dr. ABT

1
Como isso está fora de tópico? As ferramentas de desenvolvimento estão no tópico, tanto quanto eu sei. É baseado em opiniões.
Nic Szerman

Respostas:


135

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.


4
Aqui está o link para o CodeAnalyst: developer.amd.com/CPU/CODEANALYST/Pages/default.aspx
epotter

1
Eu tentei trabalhar com isso agora e não gostei nada disso. Eu não conseguia nem entender como obter o tempo total da função% (incluindo os callees) que o TrueTime poderia fazer bem há 10 anos.
Pavel Radzivilovsky, 13/03/11

Eu escrevi uma adaptação de sonolento que não depende do wxWidgets, mas roda na linha de comando. Você o executa por um período de tempo em um processo em execução e, quando o para, obtém as estatísticas do que o processo estava gastando seu tempo. Não é intrusivo, pois você não precisa modificar seu código de nenhuma maneira para usá-lo, mas suspende seus threads enquanto lê as pilhas de chamadas. Você também precisa dos arquivos pdb disponíveis para obter uma saída significativa, mas acho que isso se aplica a qualquer criador de perfil.
22612 CashCow

Eu recomendaria tentar o xperf, achei superior ao analista de código da AMD.
MW_dev

1
O CodeAnalyst não receberá mais atualizações, exceto as correções críticas. Eles mudaram para o CodeXL. Aqui está o link para que você possa atualizar sua resposta. E obrigada por me informar agora sobre o CodeAnalyst / XL, a propósito.
Adri CS

61

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).


20
googletest é uma estrutura de teste de unidade. Como você usaria isso para realizar perfis?
greatwolf 10/05

Se você estiver usando um binário Windows da pilha gcc, essa é uma ótima opção - o AMD CodeAnalyst não reconhece símbolos gcc no Windows, mas com muito sono!
1212 Mike


17

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:

void f()
{
    srand(time(0));

    vector<double> v(300000);

    generate_n(v.begin(), v.size(), &random);
    sort(v.begin(), v.end());
    sort(v.rbegin(), v.rend());
    sort(v.begin(), v.end());
    sort(v.rbegin(), v.rend());
}

1
É fácil de usar e cria um perfil super rápido. Apenas um problema que não resolvi é um problema que, depois de terminar a depuração, a janela do criador de perfil não fecha automaticamente e é necessário eliminá-la através do gerenciador de tarefas (sem isso você não pode recompilar seu projeto).
Ludek Vodicka

1
Descobri que depois de fechar meu aplicativo com o botão CLOSE regular, a janela do criador de perfil também pode ser fechada regularmente. Mas quando saio do aplicativo com o atalho SHIFT + F5 (comando Stop debugging VS), o botão fechar da janela do criador de perfil está desativado.
Ludek Vodicka

Não funciona com o VS 2015.
rustyx 26/10/2015

1
Corrigido a partir de 1.1.590. Veja as atualizações na página Galeria do Visual Studio ( visualstudiogallery.msdn.microsoft.com/… )
Arty

1
Isto é muito, muito bom! Deve ser classificado muito mais alto! Super simples de instalar e executar, e oferece a você tudo o que você precisa saber. Minha segunda opção é o Windows Performance Analyzer: geekswithblogs.net/akraus1/archive/2015/04/21/163342.aspx
Steve


7

Uma nova adição é Shiny .

O que outras pessoas estão dizendo


3
Não é possível encontrar binários para download, apenas códigos-fonte. Não é muito conveniente.
Monsenhor

5

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


1
Bem, eu sei que estou perdendo o URL de trabalho do site.
Tomáš Zato - Restabelece Monica

3

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 )


Somente essa ferramenta me ajudou a criar perfil compilado no aplicativo da Web misto (gerenciado e nativo) no IIS.
Monsenhor

É lamentável que eles não apóiem ​​as pessoas que tentam avaliar seu produto.
Lucky Luke

Atualmente, eles estão oferecendo uma avaliação de 14 dias com funcionalidade limitada.
Max



0

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.



0

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.

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.