ACE中的精确定时器
来源:互联网 发布:淘宝爱逛街推广 编辑:程序博客网 时间:2024/05/14 01:31
ACE中有一个类,ACE_High_Res_Timer,这里的Res即为Resolution,用OS相关的方法来获取精确的定时器。
其中静态方法global_scale_factor的原型为
ACE_UINT32 global_scale_factor()
打开对应的.cpp,可以看到这个函数在Linux平台下调用的是
ACE_High_Res_Timer::get_cpuinfo()
而get_cpuinfo获取的是当前的cpu 的Mhz数目。
在Ubunutu下
cat /proc/cpuinfo即可看到
cat /proc/cpuinfo
processor : 0
vendor_id : GenuineIntel
cpu family : 6
model : 42
model name : Intel(R) Core(TM) i5-2415M CPU @ 2.30GHz
stepping : 7
cpu MHz : 2313.671
cache size : 6144 KB
fdiv_bug : no
hlt_bug : no
f00f_bug : no
coma_bug : no
fpu : yes
fpu_exception : yes
cpuid level : 5
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 syscall nx rdtscp lm constant_tsc up pni monitor ssse3 lahf_lm
bogomips : 4627.34
clflush size : 64
cache_alignment : 64
address sizes : 36 bits physical, 48 bits virtual
power management:
#include <ace/Memory_Pool.h>
#include <ace/High_Res_Timer.h>
#include <ace/Log_Msg.h>
int main()
{
//compare the get_cpuinfo and global_scale_factor
ACE_UINT32 t1 = ACE_High_Res_Timer::get_cpuinfo();
ACE_UINT32 t2 = ACE_High_Res_Timer::global_scale_factor();
ACE_DEBUG((LM_DEBUG,"%d %d\n",t1,t2)); //打印的值都是2314,相等
ACE_High_Res_Timer timer;
timer.start();
ACE_OS::sleep(5);
timer.stop();
ACE_TCHAR message[128] = {0};
timer.print_total(message);
fprintf(stderr,"%s",message);
return 0;
}
这里打印出的值都是2314 ,对应的是cpu的MHz数
ACE_High_Res_Timer有一个方法为print_total,能以更友好的方式打印出时间使用情况
- ACE中的精确定时器
- ACE中的定时器实现原理
- ACE定时器
- ACE定时器
- ACE定时器
- ACE定时器
- ACE定时器
- ACE定时器线程无效
- ACE定时器代码实现
- linux 精确定时器
- 一个精确的定时器
- ACE学习之定时器(Timer)
- ACE学习之定时器(Timer)
- ACE学习之定时器(Timer)
- 调整系统时钟导致ACE定时器丢失
- 基于ACE的定时器队列实现
- ACE中的inline
- ACE中的Share MEM
- 遍历进程
- 剪贴板操作
- 图片格式转换
- Linux设备驱动模型之kobject原理与实例分析
- 小明系列问题——小明序列
- ACE中的精确定时器
- android 彩信处理
- 错误整理:ORA-02269
- java 注解(annotation)
- lcs(dp)
- hdu 1716 全排列算法
- php表情
- Android_Mars_数独开发04
- VBS 打开关闭光驱