かなり高価な操作を行う補助関数があります。gettimeofday/settimeofday関数の作成に時間がかからない
私はアルゴリズムのメインセクションをプロファイリングしようとしていますが、この補助関数は多く呼び出されます。したがって、測定された時間は補助機能の時間を考慮に入れます。
これを解決するために、補助的な機能が瞬間的に見えるように時間を設定して復元することに決めました。私は以下のマクロを定義しました:
#define TIME_SAVE struct timeval _time_tv; gettimeofday(&_time_tv,NULL);
#define TIME_RESTORE settimeofday(&_time_tv,NULL);
。 。それらを補助機能の最初と最後の行として使用しました。何らかの理由で、補助関数のオーバーヘッドが含まれています!
私はこれがちょっと面倒な解決策であることを知っています。それ以来私は動き続けましたが、なぜこのアイデアがうまくいかなかったのか不思議です。 誰かが理由を説明できますか?
プロファイラーを使用します。 – orlp
残りの時間はどのように測定されますか? – talonmies