使用 Java Native Interface 的最佳实践

本文列举了使用Java本机接口(JNI)时常见的10大编程错误,包括性能和正确性两方面的问题,并提供了避免这些错误的最佳实践及诊断工具。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

避免最常见的 10 大 JNI 编程错误的技巧和工具

http://www.ibm.com/developerworks/cn/java/j-jni/index.html

级别: 中级

Michael Dawson, 高级软件开发人员, IBM
Graeme Johnson, J9 虚拟机开发经理, IBM
Andrew Low, STSM,J9 虚拟机, IBM

2009 年 7 月 27 日

Java 本机接口(Java Native Interface,JNI)是一个标准的 Java API,它支持将 Java 代码与使用其他编程语言编写的代码相集成。如果您希望利用已有的代码资源,那么可以使用 JNI 作为您工具包中的关键组件 —— 比如在面向服务架构(SOA)和基于云的系统中。但是,如果在使用时未注意某些事项,则 JNI 会迅速导致应用程序性能低下且不稳定。本文将确定 10 大 JNI 编程缺陷,提供避免这些缺陷的最佳实践,并介绍可用于实现这些实践的工具。

本文介绍 JNI 用户最常遇到的 10 大编码和设计错误。其目标是帮助您认识到并避免它们,以便您可以编写安全、高效、性能出众的 JNI 代码。本文还将介绍一些用于在新代码或已有代码中查找这些问题的工具和技巧,并展示如何有效地应用它们。

JNI 编程缺陷可以分为两类:

  • 性能:代码能执行所设计的功能,但运行缓慢或者以某种形式拖慢整个程序。
  • 正确性:代码有时能正常运行,但不能可靠地提供所需的功能;最坏的情况是造成程序崩溃或挂起。

性能缺陷

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

正确性缺陷

5 大 JNI 正确性缺陷包括:

避免常见缺陷

假设您编写了一些新 JNI 代码,或者继承了别处的某些 JVI 代码,如何才能确保避免了常见缺陷,或者在继承代码中发现它们?表 1 提供了一些确定这些常见缺陷的技巧:


表 1. 确定 JNI 编程缺陷的清单

未缓存触发数组副本错误界限过多回访使用大量本地引用使用错误的 JNIEnv未检测异常未检测返回值未正确使用数组未正确使用全局引用
规范验证
XXX
方法跟踪XXXXXXX
转储X
-verbose:jniX
代码审查XXXXXXXXXX

您可以在开发周期的早期确定许多常见缺陷,方法如下:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值