2012-04-23 11 views
0

同じ機能を実行する2つの関数がありますが、異なる方法で実装されています。私は2つのうちの効率的なものを使いたいと思っていました。より効率的な2つの類似関数の決定方法

ファイルに関数を入力して終了する前にTimestampを書くことができました。しかし、私は上記を理解するより良い方法があるかどうかを知りたがっていました。

profilersVerySleepy, Visual Studios 2008 C++ Profilerのように見えましたが、生成された情報はどの機能が呼び出されたかです。 (おそらく私はそれらを使用することに間違っている)。 また、Linux上にValgrindのようなVisual C++用に何かが存在するかどうかを知りたがっています。

+0

私は通常、呼び出しを行うためにQueryPerformanceCounter()を使用します - http://stackoverflow.com/questions/4727006/c-logging-and-performance-tuning-libraryを参照してください。 –

答えて

1

実際にこれらの2つを比較したい場合は、Timestampを実行しますが、それぞれの関数をそれぞれ100万回呼び出すと、集計タイミングが比較されます。

start timer 
for i = 1 to 1m, call function 
stop timer 

このアプローチは、機能の実行時間は、それが呼び出された回数に依存しない、それを呼び出すために、すなわち最初の時間があれば、任意の後続の呼としてについてとることを前提としています。

詳細なプロファイリング情報が必要な場合は、plenty of optionsがあります。

+1

*最小値*それぞれのタイミング。また、http://stackoverflow.com/a/4532685/916657 –

+0

を参照してください@ニクラス - 私はコードに依存していると思いますが、良い点 –

+0

確かに、それは機能に依存します。しかし、「純粋な」機能の場合は常にそうです。 –

関連する問題