1. 程式人生 > >使用 Java Native Interface 的最佳實踐

使用 Java Native Interface 的最佳實踐

程式設計師在使用 JNI 時的 5 大效能缺陷如下:

 

這篇帖子解決了我很大一個問題(當陣列較大時總是程序死掉,就是因為對二維陣列沒有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);
   }
}