为了账号安全,请及时绑定邮箱和手机立即绑定

为什么C++通过JNI调用JAVA类函数速度慢近十倍?

为什么C++通过JNI调用JAVA类函数速度慢近十倍?

jeck猫 2019-03-21 18:15:52
很不解,多谢了。
查看完整描述

5 回答

?
湖上湖

TA贡献2003条经验 获得超2个赞

理论上用native方法比普通的Java方法运行效率要高一些。Java程序的运行时通过虚拟机来进行的,虽说提供了可移植性,但运行效率也比直接的可执行文件要低,因为多了很多不必要的中间过程。JNI是直接调用由C或C++生成的动态函数库,所以执行起来要快很多。


查看完整回答
反对 回复 2019-04-26
?
www说

TA贡献1775条经验 获得超8个赞

你的意思是不是说相同的代码,用Java写和用C++写,但是Java运行的效率要高于Java调用C++??


查看完整回答
反对 回复 2019-04-26
?
叮当猫咪

TA贡献1776条经验 获得超12个赞

他说的是c++来调用java的类方法
慢才正常啊,java的类都是基于jvm的,首先要有jvm,才能去调用java方法
而jvm又基于操作系统
他们就这样绕啊绕的,肯定慢了

查看完整回答
反对 回复 2019-04-26
?
回首忆惘然

TA贡献1847条经验 获得超11个赞

你是什么样的代码呢?
能再说具体一点吗?

JVM本身也有优化的啊


查看完整回答
反对 回复 2019-04-26
?
慕哥9229398

TA贡献1877条经验 获得超6个赞

将java类中的方法执行两次,估计第二次时间就正常了。我猜测是Java类的延迟装载造成第一次调用慢了,你可以试试看,不知道我猜测的对不对?


查看完整回答
反对 回复 2019-04-26
  • 5 回答
  • 0 关注
  • 1028 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号