weixin_42497924
2012-03-07 17:10 阅读 758
已采纳

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

很不解,多谢了。实在对不住,积分所剩不多。

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享

6条回答 默认 最新

  • 已采纳
    ll89308839 ll89308839 2012-03-08 14:47

    建议你在论坛问问他
    RednaxelaFX

    点赞 评论 复制链接分享
  • weixin_42590550 weixin_42590550 2012-03-07 18:43

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

    点赞 评论 复制链接分享
  • redstarofsleep redstarofsleep 2012-03-07 22:21

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

    点赞 评论 复制链接分享
  • ll89308839 ll89308839 2012-03-08 08:13

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

    点赞 评论 复制链接分享
  • redstarofsleep redstarofsleep 2012-03-08 13:24

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

    JVM本身也有优化的啊

    点赞 评论 复制链接分享
  • u011606457 _1_1_7_ 2012-03-08 15:02

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

    点赞 评论 复制链接分享

相关推荐