使用 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);
   }
}

猜你喜欢

转载自my.oschina.net/u/2963604/blog/2987843
今日推荐