1

最近、CPUスケーリングの効果を測定しようとしています。この時計で測ったら正確ですか?

    template<std::intmax_t clock_freq>
    struct rdtsc_clock {
        typedef unsigned long long rep;
        typedef std::ratio<1, clock_freq> period;
        typedef std::chrono::duration<rep, period> duration;
        typedef std::chrono::time_point<rdtsc_clock> time_point;
        static const bool is_steady = true;

        static time_point now() noexcept
        {

            unsigned lo, hi;
            asm volatile("rdtsc" : "=a" (lo), "=d" (hi));

            return time_point(duration(static_cast<rep>(hi) << 32 | lo));
        }
    };

更新

私の別の投稿のコメントによると、 redtsc からのカウンターは CPU 周波数の影響を受けないため、redtsc は CPU 周波数スケーリングの効果を測定するために使用できないと思います。

4

1 に答える 1

1

私の別の投稿のコメントから、要するに、redtsc からのカウンターは CPU 周波数の影響を受けないため、redtsc は CPU 周波数スケーリングの効果を測定するために使用できません。

于 2013-11-01T05:49:28.873 に答える