我想从 linux 返回微秒,因为 java 在具有单调时钟的系统上只有挂钟时间到毫秒精度。
我对 jni 的了解有限,如果这是一个愚蠢的问题,我深表歉意。
我相信我可以在 c 层调用 gettimeofday 并将值返回为 jlong:
private native long getMicros();
或者也许取一个指向地址的指针,然后将值写入该地址:
private native void getMicros(Long ptr);
后者在我脑海中引发了很多问题,例如“c 怎么知道 jlong 的二进制格式是什么”和“我怎么会这样做!”。
我只是想知道后者是否可能比通过 jni 层返回值更快。
欢迎任何想法。