Measuring the CPU frequency scaling effect

Posted by Bryan Fok on Stack Overflow See other posts from Stack Overflow or by Bryan Fok
Published on 2013-11-01T01:10:14Z Indexed on 2013/11/01 3:55 UTC
Read the original article Hit count: 174

Filed under:
|
|
|

Recently I am trying to measure the effect of the cpu scaling. Is it accurate if I use this clock to measure it?

    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));
        }
    };

Update:

According to the comment from my another post, I believe redtsc cannot use for measure the effect of cpu frequency scaling because the counter from the redtsc does not affected by the CPU frequency, am i right?

© Stack Overflow or respective owner

Related posts about c++

Related posts about c