JNI呼び出しで時間を測定しようとしていますが、ネイティブからJavaを呼び出しています。Java JNIの測定時間(ネイティブコールJava)
Cコードでは、 "GetTickCount" APIを適用してJNI実行時間を取得し、 "System.nano"をJavaで取得します。
例:
long start = GetTickCount();
....//CallStaticMethod exampleMethod...
long end = GetTickCount();
long duration = end - start;
とJava
でpublic static exampleMethod(){
long start = System.nano();
//do something
long end = System.nano();
long duration = TimeUnit.NANOSECONDS.toMilis(end - start);
}
Javaの期間は、Cの期間を超えているので、時々、それは矛盾しています。 (約5~10ミリ秒)
'GetTickCount'は**ミリ秒**を返し、' System.nanoTimeの() 'を返します**ナノ**秒。 – apangin
ご迷惑をお掛けして申し訳ございません。単位時間には関係しません。私はここに投稿している間、最後の行のコードを見逃しています。実際、私はソースコードでnanoをミリ秒に変換しています:)。 Javaの継続時間は、Cの継続時間よりも同じ単位(ミリ秒)である – LGProgramer