4

ミューテックス、セマフォ、またはフューテックスのレイテンシーを測定するにはどうすればよいですか?つまり、以前にロックされたミューテックスのロックを解除することと、そのミューテックスをロックすることの2つのイベント間のレイテンシーを意味します。2つのケースがあります。すべてのスレッド/プロセスが同じCPU上にある場合(スレッドの再スケジュールにかかる時間)と、最初のスレッドが最初のCPU上にあり、2番目が2番目の場合です。

Thread1: Lock(Mutex) Critical1 Unlock(Mutex)|<------->|
Thread2:                              while{trylock}  |Lock(Mutex) Critical2 Unlock(Mutex)|

あるいは

Thread1: work..work..very hard..work...  sem_post()|<----->|
Thread2: sem_wait(semaphore)...............................|sem_wait unlocks here work2..

今回は非常に短い(〜1kサイクル)ので使えませんgettimeofday()

4

1 に答える 1

3

高分解能タイマーを使用できます。CLOCK_MONOTONIC_HR を使用した clock_gettime (これが 1 年以上前のものであることはわかっていますが、まだ誰かが同じ質問をしている可能性があります)

于 2011-06-13T16:20:57.537 に答える