2019独角兽企业重金招聘Python工程师标准>>>

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

  • 不缓存方法 ID、字段 ID 和类
  • 触发数组副本
  • 回访(Reaching back)而不是传递参数
  • 错误认定本机代码与 Java 代码之间的界限
  • 使用大量本地引用,而未通知 JVM

这篇帖子解决了我很大一个问题(当数组较大时总是进程死掉,就是因为对二维数组没有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);}
}

转载于:https://my.oschina.net/u/2963604/blog/2987843

使用 Java Native Interface 的最佳实践相关推荐

  1. Java Native Interface 六JNI中的异常

    本文是<The Java Native Interface Programmer's Guide and Specification>读书笔记 在这里只讨论调用JNI方法可能会出现的异常, ...

  2. 【转】JNI(Java Native Interface)的简介

    因为刚刚接触android和java平台,对JNI到底是什么,还不是很了解,所以从CSDN转载了一篇文章,以便自己对JNI有一个认识,也跟大家分享一下. JNI是Java Native Interfa ...

  3. Java Native Interface 二 JNI中对Java基本类型和引用类型的处理

    本文是<The Java Native Interface Programmer's Guide and Specification>读书笔记 Java编程里会使用到两种类型:基本类型(如 ...

  4. Android JNI(Java Native Interface)技术介绍

    Android平台上的JNI技术介绍 JUL 15TH, 2013 | COMMENTS NDK简介 Android是由Google领导开发的操作系统,Android依靠其开放性,迅速普及,成为目前最 ...

  5. 网络研讨室_即将举行的网络研讨会:调试生产中Java的5种最佳实践

    网络研讨室 您的团队是否花费超过10%的时间在生产中调试Java? 将新代码部署到生产中是一项艰巨的任务. 在您的本地环境中起作用的东西在生产中的作用并不相同,您可以通过用户来了解. 不理想吧? 生产 ...

  6. 即将举行的网络研讨会:调试生产中Java的5种最佳实践

    您的团队是否花费超过10%的时间在生产环境中调试Java? 将新代码部署到生产中是一项艰巨的任务. 在您的本地环境中起作用的东西在生产中的作用并不相同,您可以通过用户来了解. 不理想吧? 生产中的调试 ...

  7. javaone_虚拟化Java应用程序:最佳实践(JavaOne 2011)

    javaone 贾斯汀·穆雷(Justin Murray)早五分钟就开始了他的演讲["虚拟化Java应用程序:最佳实践"(21860)],并说虚拟化已经到了人们不再需要担心利用虚拟 ...

  8. 虚拟化Java应用程序:最佳实践(JavaOne 2011)

    贾斯汀·穆雷(Justin Murray)早五分钟就开始了他的演讲["虚拟化Java应用程序:最佳实践"(21860)],并说虚拟化已经到了人们不再需要担心利用虚拟化的地步. 他说 ...

  9. java native 接口_Java本地接口--Java Native Interface (JNI)

    一.方法介绍 java native方法是指本地方法,当在方法中调用一些不是由java语言写的代码或者在方法中用java语言直接操纵计算机硬件时要声明为native方法. java中,通过JNI(Ja ...

最新文章

  1. 数据结构应用实例#栈#迷宫寻路
  2. extjs树使用别的皮肤的样式_收藏!艾多美逆龄六件套的使用方法~
  3. 05 前端HTTP协议(图解HTTP) 之 HTTP首部
  4. 'scrapyd-deploy' 不是内部或外部命令,也不是可运行的程序 或批处理文件。
  5. html在线编辑器 asp.net,ASP.NET网站使用Kindeditor富文本编辑器配置步骤
  6. unicode字符大全可复制_说说Excel不可见字符的那些事
  7. 《linux操作系统》第06章在线测试,Linux系统管理一测试题-附答案.doc
  8. Docker学习文档之二 搭建环境-Windows环境
  9. AI队列长度检测:使用YOLO进行视频中的对象检测
  10. 为什么开发者将迎来万亿美元黄金时代
  11. 只谈Network,不谈Social,互联网营销
  12. Mac下Tomcat乱码的问题
  13. c# winform 让Form窗体上系统自带的红色关闭按钮失效,点击关闭变为隐藏
  14. 好题汇总(持续更新)
  15. 管理小故事 100例
  16. h5案例欣赏及分析_2019下半年,10个优秀H5案例参考
  17. 老电脑重装Linux系统
  18. 【电脑无法打开移动热点】——终极解决方法
  19. photoshop卸载不彻底--论如何删除ADMUI3.fon
  20. 高代第2章第1节n元排列:奇排列、偶排列的判断

热门文章

  1. python跳回循环开始位置_如何将程序从用户输入循环回起始位置?
  2. 二十八、动态分区分配算法
  3. Python常用函数与技巧总结(一)
  4. SRTP是如何工作的
  5. linux系统中的文件传输
  6. 【每日一题】剑指 Offer 22. 链表中倒数第k个节点
  7. 万字总结,体系化带你全面认识 Nginx
  8. RocketMQ 高级功能介绍
  9. 【Netty】入门Netty官方例子解析(一)写个 Discard Server
  10. MySQL 高频面试题,都在这了