1

かなり複雑で高度にテンプレート化されたコード (C++ ですが、これはあまり関係ないかもしれません) があり、実行時の add、sub、mul、div、および sqrt の数を知りたいです。この情報を自動的に取得する方法はありますか (コンパイラーは簡単に解決できます)。生成されたアセンブラ コードで自分でカウントしようとしましたがjp、 、jmp、およびcalls と混同されました。

4

2 に答える 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 に答える