Javaは、単調クロックを備えたシステムではミリ秒の精度までの壁時計時間しか持たないため、Linuxからマイクロ秒を返したいと考えています。
私の jni への露出は限られているため、ばかげた質問であれば申し訳ありません。
c レイヤーで gettimeofday を呼び出し、値を jlong として返すことができると思います。
private native long getMicros();
または、別の方法として、アドレスへのポインターを取得し、このアドレスに値を書き込みます。
private native void getMicros(Long ptr);
後者については、「c は jlong のバイナリ形式をどのように知ることができるのか」や「どうすればこれを行うことができるのか!」など、多くの疑問が頭に浮かびます。
後者は、jni レイヤーを介して値を返すよりも速いのではないかと思いました。
どんな考えでも大歓迎です。