Windows 用の最高の無料 C++ プロファイラーは何ですか?[閉まっている]
質問
C++ コードのボトルネックを見つけるためにプロファイラーを探しています。無料で、煩わしくない、優れたプロファイリング ツールを見つけたいと思っています。私はゲーム開発者で、Xbox 360 用の PIX を使用しており、非常に優れていると感じましたが、無料ではありません。インテルは知ってるよ バーチャルチューン, しかし、それも無料ではありません。
解決
コードXL 行末に置き換わりました AMDコードアナリスト どちらも無料ですが、VTune ほど高度ではありません。それもあります 眠い, これは非常に単純ですが、多くの場合に機能します。
他のヒント
プロフィーはとてもクールです: http://pauldoo.com/proffy/
免責事項:これを書きました。
MS VC 7.1 以降には、MicroProfiler と呼ばれるインストルメント (正確な機能) プロファイラーがあります。 ここから入手できます (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());
}
マイクロソフトは、 Windows パフォーマンス ツールキット.
Windows Vista が必要ですが、 Windowsサーバー2008, 、または Windows 7。
新しく追加されたのは、 光沢のある.
強くお勧めします Windows パフォーマンス ツールキット (WPT) または XPERF
コマンド ライン xperf コマンド ライン ツールは、GUI xperfview ツールを使用して分析できる Windows イベント トレーシング (ETW) ログを記録します。
使用する stacktrace コマンドライン引数 ボトルネックのプロファイリングとトラブルシューティングを行うため、私の会社にとって非常に貴重なツールであることが証明されています。最も魅力的な点の 1 つは、WPT は由緒ある環境であっても、あらゆる環境にインストールできることです。 Windows XP.
の上 Windows 8 Windows パフォーマンス アナライザー xperf をさらに高いレベルに引き上げます。
ETW ログで提供される具体的な数値と統計は、Visual Studio Profiler (2010/2012) を除いて、比類のない詳細なものです。これも優れていますが、私の知る限り無料ではありません。
xperf を使用したことがない場合は、何が足りないのかわかりません。
私は AQTime を使用しています。これは、私がこれまで使用した中で最高のプロファイリング ツールの 1 つです。無料ではありませんが、30 日間の試用ができるので、1 つのプロジェクトのみの最適化とプロファイリングを計画していて、30 日間で十分な場合は、このアプリケーションを使用することをお勧めします。(http://www.automatedqa.com/downloads/aqtime/index.asp)
cRunWatch という私のプロファイラーを試してみてください。これは 2 つのファイルだけなので、プロジェクトに簡単に統合でき、コードを実装するには 1 行だけ追加する必要があります。
http://ravenspoint.wordpress.com/2010/06/16/timing/
Boost ライブラリが必要です。
私は、コンピュウェアの DevPartner スイートの一部である「TrueTime」を何年も使用してきました。[無料版] (Compuware DevPartner Performance Analysis Community Edition を試すことができます) が利用可能です。
私はスタンドアロンの Visual Studio プロファイラーである VSPerfMon を使用しています。実行して結果を確認するのに役立つ GUI ツールを作成しました。
EmbeddedProfiler は Linux と Windwos の両方で無料で使用できます。
プロファイラーは (機能的に) 煩わしいものですが、コードの変更は必要ありません。特定のコンパイラ フラグ (gcc/MinGW の場合は -finstrument-functios、MSVC の場合は /GH) を追加し、プロファイラのライブラリをリンクするだけです。完全な呼び出しツリーまたは関数リストのみを提供できます。独自のアナライザー GUI を備えています。