2012-05-03 8 views
7

私は、インパクトの少ない、osに依存しないC++コードのプロファイラを探しています。低インパクトのC++プロファイラを探しています

私はインパクトの低いと言いますが、私はバンググラインドよりも邪魔にならないものを指しています。私はMIPSベースの埋め込み環境(それゆえos-independance)で使用する予定で、valgrindの移植版を試してみると、パフォーマンス特性(仕事でHeisenbergの原則が多すぎる)が完全に変更されてしまいます。メモリーバスのスピードがボトルネックであることはわかっています。なぜなら、バググリンドがなぜそんなに侵入したのかを最もよく説明する可能性があるからです。

私は、コードの特定の部分を測定できるチェックポイントに基づいて自家製のプロファイラを作成しました。基本的には、コード内の戦略的な場所でチェックポイントを設定するために、コードを変更(および再コンパイル)する必要があります。次に、実行時に、各チェックポイントがヒットした回数と最後のチェックポイントがヒットしてからの時間を格納します。実行した後、チェックポイントをダンプすることができます。数値、最大時間、最小時間、平均時間などを計算します。

このプロファイラ(私はLowImpactProfilerと呼んでいます)私はそこに何か良いものがあるのだろうかと思います。

IveはサンプリングプロファイラーであるoProfileと見なされますが、ImはLinuxを実行していないので実装するのが難しいと思います。

+1

目的がコードの何が遅くなっているのかを調べることで、より良いパフォーマンスを得るために改善される可能性がある場合* [これを試すことができます](http://stackoverflow.com/questions/375913/what-c​​an -i-use-to-profile-c-code-in-linux/378024#378024)* –

+0

@Brady:* Heisenburger *?これについて知りませんでした! –

+0

@Matthieu:聞いたことがない?それはクオンタムハンバーガーです。 –

答えて

5

非常に限定された組み込みデバイスで大成功を収めて私はShinyをプロファイルしました。あなたの説明から、あなたのLowImpactProfilerにも同様のアプローチが必要です。

+0

私は今週それをダウンロードし、見て、グラシアはマドリードをdeses! – Brady

+0

IveはShinyコードを見ましたが、私はこれまでのところ好きですが、現在持っているものよりも良い解決策であるようです。ありがとう! – Brady

+0

これは有望に見えますが、これは非常に低消費電力の組み込み機器ではうまくいかないと私は考えています。 – Alex

1

Windowsを使用している場合は、あなたが私のプロファイラを試すことができますが、ここでhttp://ravenspoint.wordpress.com/2010/06/16/timing/

を説明し、あなたより使いやすいかもしれないように聞こえるが、それはOSに依存しないではありません。これは、Windows APIであるQueryPerformanceCounter()の呼び出しを使用します。これはオープンソースなので、そこにある高性能タイマーを使用してOSに移植する価値があります。

+0

ありがとうございますが、私たちは窓、その電気通信アプリケーションを使用していません。もしあれば、いつかはUnixプラットフォームに移植されるかもしれません。私はとにかく見ていきます。 – Brady

+0

+1、私はこれが使用するAPIが好きです。私のチェックポイントに似ています。コードを見て、それを私と移植/マージすることを見ていきます。来週あなたが見ることができるように、私は私の準備をしてギターに乗せます。また、スコープ内にチェックポイントを設定したり、スコープ内にいなくても個々のチェッカポイントを設定することもできます。コードを提出すると、ここにmsgを投稿したり、あなたのウェブサイトにmsgを送ったりします。ありがとう! – Brady

関連する問題