C++中的CPU计时器
CPU timer in C++
unsigned char ticks_bits[3] = { 0x0F, 0x31, 0xC3};
__uint64_t ( * ticks ) () = (__uint64_t (*) ()) & ticks_bits;
__uint64_t T = ticks(); // CRASH!
我已经在Windows-32bit中使用了很多年这个代码来获取CPU时钟。但它将在Linux 64位中崩溃。有办法让它发挥作用吗?
我过去所做的事情是这样的:
uint64_t
clock_ticks()
{
uint64_t ret;
__asm__ volatile (".byte 0x0f, 0x31" : "=A" (ret));
return ret;
}
相关文章:
- Linux的Cpp上的计时器
- 提升 ASIO 无法识别计时器对象
- 提升 asio 并发计时器取消问题与链
- 使用单体计时器的pthread_cond_timedwait有时会比预期晚超时
- 窗口中的微秒计时器
- 计时器是否从另一个线程启动?
- 如何在 c++ 中创建计时器
- C++回调计时器实现
- 在计时器或主线程外部的命令上销毁/替换线程
- 如何制作每秒从 30 乘 1 倒计时的计时器?
- 保留计时器集合(对象与指针)的最佳方法
- 在网络套接字计时器滴答后增加asio短读错误
- 是否可以仅使用标准 c++/c++11 实现不带"sleep"的计时器?
- 在没有NtSetTimerResolution的Windows上提高计时器分辨率(高分辨率)
- 计时器坏了或者其他什么的
- 功能计时器阻止主功能继续
- 线程SCHED_RR Posix 计时器使用的是 100% CPU
- 带有少量CPU负载的c++警报计时器
- "QObject::startTimer: timers cannot be started from another thread"没有计时器和 CPU 消耗
- C++中的CPU计时器