测量CPU频率缩放效果

时间:2013-11-01 01:10:14

标签: c++ c cpu performance-testing

最近我试图测量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));
        }
    };

更新

根据我的另一个post的评论,我相信redtsc不能用来衡量cpu频率缩放的效果,因为来自redtsc的计数器不受CPU频率的影响,我是对的吗?

1 个答案:

答案 0 :(得分:1)

从我的另一个post中的评论来看,简而言之,redtsc不能用于衡量cpu频率缩放的效果,因为来自redtsc的计数器不受CPU频率的影响。