c++ - 测量 CPU 频率缩放效果

标签 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 频率的影响,对吗?

最佳答案

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

关于c++ - 测量 CPU 频率缩放效果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19719317/

相关文章:

比较 2 个字符串并保存结果

C——链表队列;前面总是等于后面

c++ - 检测内存泄漏的工具

c++ - Qt中的跨越水平标题

c++ - 无法为自定义对象oneAPI创建数据缓冲区

c++ - GDB中基于局部变量存在性的流量控制

c++ - 如何在没有高 CPU 使用率的情况下在 OpenGL 游戏中正确渲染模型(带纹理的网格)?

cluster-computing - 什么是套接字,内核,线程,CPU?

Java 互斥锁与 smp

c++ - ubuntu命令获取C++程序中的所有功能