私は QNX を実行しています。
関数を使用して、1 秒あたりのクロック サイクルを取得しました。
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;
アプリケーション全体で使用していないため、クロックのオーバーラン/オーバーフローはありません。追加/変更後に1つの機能のパフォーマンスを測定するためだけです.
とにかく、正しい出力が得られているかどうか疑問に思っています。
このように結果を計算したところ、
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);
この方法で差を出力すると、得られる時間が大きく、ほぼ2倍になることがわかります
最初の方法は 0.6 ミリ秒を取得し、2 番目の方法は ftime を使用して結果を 1.xx ミリ秒取得します