我正在运行 QNX,
我使用了一个函数来获取每秒的时钟周期,
uint64_t clockPerSec = getCPS();
uint64_t currentClockCycle = getCurrentCycle();
功能
uint64_t getCPS()
{
return (~(uint64_t)0) /SYSPAGE_ENTRY(qtime) -> cycles_per_sec;
}
uint63_t getCurrentCycle()
{
return ClockCycles();
}
然后在运行一个函数之后
我愿意
currentClockCycle = getCurrentCycle() - currentClockCycle;
我没有在整个应用程序中使用它,所以我没有时钟溢出/溢出,只是为了在一些添加/更改后测量一项功能性能。
无论如何,我只是想知道我是否得到了正确的输出。
我是这样计算结果的,
double result = static_cast<double>(clockPerSec)/currentClockCycle;
// this get me the time in second??
// then multiplied it by 1000000 to get a micro-sec measurement
我做错什么了吗?
使用时
ftime(&t_start);
然后
ftime(&t_end);
并以这种方式输出差异,我看到我得到的时间更大,几乎是两倍
第一种方法我得到 0.6 ms 第二个使用 ftime 我得到结果 1.xx ms