Androidで高解像度タイマー(クロックソース)を取得する方法を探しています。これはネイティブ コードである必要があり、かなり移植性がない可能性があります。マイクロ秒以上の解像度が欲しいです。私の特定のアプリケーションでは、分解能は精度よりも重要であり、単調なタイマーが最適です。Android 4.0.3 を搭載した特定の ARMv7 チップセットでテストを行っています。
私がこれまでに試したこと:
clock_gettime(CLOCK_MONOTONIC)
: ターゲット ハードウェア上で 1 ミリ秒単位で増分 ( EDIT当初、コードのバグにより 10 ミリ秒と考えていましたが、1 ミリ秒は正しいですが、まだあまり良くありません)gettimeofday()
: clock_gettime と同様
私が試していないこと:
System.nanoTime()
: これはネイティブではありません。これは clock_gettime() に基づいていると思いますが、内部にあるものを見つけて直接使用することをお勧めします。/dev/rtc
- ある種のARM命令/機能、おそらく
SysTick
(http://web.eecs.umich.edu/~prabal/teaching/eecs373-f10/readings/ARMv7-M_ARM.pdf)または汎用タイマー(GPT)。
も参照してください(関連する質問ですが、回答はありません):