233

C++ コードのボトルネックを見つけるために、プロファイラーを探しています。無料で邪魔にならない、優れたプロファイリング ツールを見つけたいと思います。私はゲーム開発者で、Xbox 360 用の PIX を使用しており、非常に優れていることがわかりましたが、無料ではありません。Intel VTuneは知っていますが、無料でもありません。

4

13 に答える 13

139

CodeXLは現在 End Of Line のAMD Code Analystに取って代わり、どちらも無料ですが、VTune ほど高度ではありません。

Sleepyもあります。これは非常に単純ですが、多くの場合に機能します。

注:上記の 3 つのツールはすべて、数年間メンテナンスされていません。

于 2008-09-15T22:18:51.870 に答える
66

Very Sleepyは、Windows システム用の C/C++ CPU プロファイラーです (無料)。

于 2010-06-07T14:38:03.363 に答える
36

Proffyはかなりクールです:http: //pauldoo.com/proffy/

免責事項:私はこれを書きました。

于 2009-11-01T15:43:51.180 に答える
19

MicroProfiler と呼ばれる MS VC 7.1 以降用の計測 (関数精度) プロファイラーがあります。ここ (x64)またはここ (x86)から入手できますコードを変更したり追加したりする必要はなく、アプリケーションを閉じたりプロファイリング プロセスを停止したりすることなく、呼び出し元と呼び出し先の関数統計をリアルタイムで表示できます。

VisualStudio と統合されているため、プロジェクトのプロファイリングを簡単に有効/無効にすることができます。クリーン マシンにインストールすることもできます。必要なのは、プロファイリングされる実行可能ファイルと共にシンボル情報を配置することだけです。

このツールは、Very Sleepy などのサンプリング プロファイラーからの統計的近似では不十分な場合に役立ちます。

大まかに比較すると、AQTime よりも優れていることがわかります (インストルメント化で呼び出された場合、関数レベルで実行されます)。次のプログラム (完全な最適化、インライン化は無効) は、結果をリアルタイムで表示するマイクロプロファイラーを使用すると、単純に統計を収集する AQTime を使用する場合よりも 3 倍速く実行されます。

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());
}
于 2012-01-24T05:50:02.910 に答える
10

MicrosoftにはWindowsPerformanceToolkitがあります。

Windows Vista、Windows Server 2008、またはWindows7が必要です。

于 2009-02-19T17:25:59.997 に答える
6

別のプロファイラーはShinyです。

</p>

于 2009-09-14T14:30:36.857 に答える
3

私は AQTime を使用しています。これは、これまで使用した中で最高のプロファイリング ツールの 1 つです。無料ではありませんが、30 日間の試用版を入手できます。1 つのプロジェクトのみの最適化とプロファイリングを計画し、30 日間で十分な場合は、このアプリケーションを使用することをお勧めします。( http://www.automatedqa.com/downloads/aqtime/index.asp )

于 2008-09-16T04:47:45.680 に答える
1

私はLuke Stackwalkerを使用しましたが、それは私の Visual Studio プロジェクトの仕事をしてくれました。

その他の興味深いプロジェクトは次のとおりです。

于 2013-10-31T09:10:25.137 に答える
1

cRunWatch という私のプロファイラーを試してみてください。これはたった 2 つのファイルであるため、プロジェクトに簡単に統合できます。また、コードをインストルメント化するために正確に 1 行を追加する必要があります。

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

Boost ライブラリが必要です。

于 2011-01-06T16:34:01.967 に答える
0

私は「TrueTime-コンピュウェアのDevPartnerスイートの一部です。[無料バージョン](Compuware DevPartner Performance Analysis Community Editionを試すことができます)が利用可能です。)を使用してきました。

于 2008-09-16T03:24:31.730 に答える
0

StandAlone Visual Studio Profiler である VSPerfMon を使用しています。実行して結果を確認するのに役立つ GUI ツールを作成しました。

http://code.google.com/p/vsptree/

于 2009-02-28T02:11:20.610 に答える
0

Linux と Windwos の両方で無料の EmbeddedProfiler を使用できます。

プロファイラーは (機能的に) 煩わしいものですが、コードを変更する必要はありません。特定のコンパイラ フラグ (gcc/MinGW の場合は -finstrument-functios、MSVC の場合は /GH) を追加して、プロファイラーのライブラリをリンクするだけです。完全な呼び出しツリーまたは関数リストのみを提供できます。独自のアナライザー GUI があります。

于 2012-11-12T11:10:07.757 に答える