かなり複雑で高度にテンプレート化されたコード (C++ ですが、これはあまり関係ないかもしれません) があり、実行時の add、sub、mul、div、および sqrt の数を知りたいです。この情報を自動的に取得する方法はありますか (コンパイラーは簡単に解決できます)。生成されたアセンブラ コードで自分でカウントしようとしましたがjp、 、jmp、およびcalls と混同されました。
2 に答える
1
+、-、*、/演算子、およびsqrt関数の使用を数えることができる float のような型をオーバーライドすることをお勧めします。
このようなもの:
struct Double {
double val;
Double(double v): val(v) {}
static unsigned add_count = 0;
Double operator+(Double other) {
++add_count;
return Double(val + other.val);
}
};
do_your_stuff<Double>();
于 2013-09-13T14:15:07.627 に答える