我正在尝试测量 JNI 调用中的时间,它从本机调用到 Java。
在 C 代码中,我应用“GetTickCount”api 来获取 JNI 执行时间和 Java 中的“System.nano”。
例子:
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 毫秒)