我有一个JNI代码可以从USB读取数据。在代码ReleaseByteArrayElements
中花费更多时间。
jint read_linux(JNIEnv *env,jobject obj, jbyteArray j_byte_read, jint len)
{
jbyte *c_read_ptr = NULL;
jint read_ret = -1;
c_read_ptr = (*env)->GetByteArrayElements(env, j_byte_read, NULL);
read_ret = read(file_d, c_read_ptr, len);
if(read_ret >= 0)
{
// Timer1
(*env)->ReleaseByteArrayElements(env, j_byte_read, c_read_ptr, 0 );
// Timer2
// (Timer2 - Timer1) > 60 milliseconds
}
}
有时Timer2
和Timer1
之间的差大于60毫秒。我也尝试过SetByteArrayRegion
。遇到同样的问题。