栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

什么时候Java比C ++快(或者什么时候JIT比预编译快)?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

什么时候Java比C ++快(或者什么时候JIT比预编译快)?

在实践中,在以下情况下(您亲自观察到的所有情况),您可能会发现天真地编写的Java代码优于天真地编写的C ++代码:

  • 很多很少的内存分配/释放。主要的JVM具有非常高效的内存子系统,并且垃圾回收可能比要求显式释放更为有效(此外,垃圾回收可以转移内存地址,如果确实需要的话)。

  • 通过深层次的方法调用进行有效访问。JVM非常擅长消除不必要的内容,以我的经验,通常比大多数C ++编译器(包括gcc和icc)要好。在某种程度上,这是因为它可以在运行时进行动态分析(即,它可能过度优化,并且仅在检测到问题时才进行优化)。

  • 将功能封装到小的短期对象中。

在每种情况下,如果您全力以赴,C 都可以做得更好(在空闲列表和块分配/取消分配的内存之间,C

在几乎每种特定情况下都可以击败JVM内存系统;有了额外的代码,模板和巧妙的宏,您可以非常有效地折叠调用堆栈;并且可以在C
++中使用小的部分初始化的堆栈分配对象,这些对象的性能优于JVM的短期对象模型。但是您可能不想付出努力。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/497403.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号