使用 Java Native Interface 的最佳实践

程序员在使用 JNI 时的 5 大性能缺陷以下:java

 

这篇帖子解决了我很大一个问题(当数组较大时老是进程死掉,就是由于对二维数组没有DeleteLocalRef的缘由):程序员

void workOnArray(JNIEnv* env, jobject obj, jarray array){
   jint i;
   jint count = (*env)->GetArrayLength(env, array);
   for (i=0; i < count; i++) {
      jobject element = (*env)->GetObjectArrayElement(env, array, i);
      if((*env)->ExceptionOccurred(env)) {
         break;
      }
       
      /* do something with array element */
 
      (*env)->DeleteLocalRef(env, element);
   }
}
相关文章
相关标签/搜索