it-swarm-pt.tech

Qual é o melhor profiler C ++ livre para o Windows?

Eu estou procurando um profiler para encontrar o gargalo no meu código C++. Eu gostaria de encontrar uma ferramenta de criação de perfil gratuita, não intrusiva e boa. Eu sou um desenvolvedor de jogos, e eu uso o PIX para Xbox 360 e achei muito bom, mas não é grátis. Eu conheço o Intel VTune , mas também não é gratuito.

216
ugasoft

CodeXL agora substituiu o End Of Line'd AMD Code Analyst e ambos são gratuitos, mas não tão avançados quanto o VTune. Há também Sleepy , o que é muito simples, mas faz o trabalho em muitos casos.

130
yrp

Muito Sleepy é um profiler de CPU C/C++ para sistemas Windows (grátis).
CppCheck é um gerador de perfil de CPU estático C/C++ para sistemas Windows (gratuito).

59
lsalamon

Proffy é bem legal: http://pauldoo.com/proffy/

Disclaimer: Eu escrevi isso.

34
pauldoo

Existe um profiler de instrumentação (com precisão de função) para MS VC 7.1 e superior chamado MicroProfiler. Você pode obtê-lo aqui (x64) ou aqui (x86) . Ele não requer quaisquer modificações ou adições ao seu código e é capaz de exibir estatísticas de função com chamadores e callees em 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 o perfil de um projeto. Também é possível instalá-lo na máquina limpa, só precisa que as informações do símbolo sejam localizadas junto com o executável que está sendo perfilado.

Essa ferramenta é útil quando a aproximação estatística de perfis de amostragem como Very Sleepy não é suficiente.

A comparação aproximada mostra que ela bate em AQTime (quando é invocada em instrumentação, execução em nível de função). O programa a seguir (otimização total, inlining desativado) é executado três vezes mais rápido com o micro-gerador 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());
}
16
Arty

Microsoft tem o Windows Performance Toolkit .

Ele requer o Windows Vista, Windows Server 2008 ou Windows 7.

10
epotter

Uma nova adição é Brilhante .

Detalhes

7
Buggieboy

Eu recomendo altamente Windows Performance Toolkit (WPT) ou XPERF

A ferramenta de linha de comando xperf da linha de comando registra logs ETW (Event Tracing for Windows) que podem ser analisados ​​usando a ferramenta xperfview da GUI.

Usando argumento de linha de comando stacktrace provou ser uma ferramenta inestimável para a minha empresa, uma vez que perfis e soluciona 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 e estatísticas fornecidos nos logs do ETW são incomparáveis ​​em detalhes, exceto para o perfil visual studio (2010/2012), que também é ótimo, mas não é gratuito.

Se você nunca usou o xperf ... você não sabe o que está perdendo

5
MW_dev

Eu uso o AQTime, é uma das melhores ferramentas de criação de perfil que já usei. Não é grátis, mas você pode obter uma avaliação de 30 dias, por isso, se você planeja otimizar e criar o perfil de apenas um projeto e 30 dias são suficientes para você, então eu recomendo usar este aplicativo. ( http://www.automatedqa.com/downloads/aqtime/index.asp )

3
dudico

Por favor, tente meu profiler, chamado cRunWatch. São apenas dois arquivos, por isso é fácil integrá-los aos seus projetos e exige a adição de exatamente uma linha para instrumentar um trecho de código.

http://ravenspoint.wordpress.com/2010/06/16/timing/

Requer a biblioteca Boost.

2
ravenspoint

Eu usei Luke Stackwalker e ele fez o trabalho para o meu projeto Visual Studio.

Outros projetos interessantes são:

1
INS

Eu usei o "TrueTime - parte da suíte DevPartner da Compuware por anos. Há uma [versão gratuita] (você pode experimentar o DevPartner Performance Analysis Community Edition da Compuware) disponível.

0
Harold Ekstrom

Você pode usar o EmbeddedProfiler, é grátis tanto para Linux quanto para Windwos.

O profiler é intrusivo (por funcionalidade), mas não requer nenhuma modificação de código. Basta adicionar um sinalizador de compilador específico (-finstrument-functios para gcc/MinGW ou/GH para MSVC) e vincular a biblioteca do criador de perfil. Ele pode fornecer uma árvore de chamadas completa ou apenas uma lista de funções. Tem seu próprio analisador GUI.

0
Mi-La