阅读更多

9顶
5踩

编程语言

转载新闻 在什么情况下Java比C++快?

2015-06-02 17:05 by 副主编 mengyidan1988 评论(21) 有11997人浏览
回复者:Cameron Purdy,Oracle中间件高级工程师。

这是根据我同时使用C++和Java工作超过20年所学到的,其实使用Java比C++还要早几年:

1、根据我的经验,当你把优化过的C++代码转换成Java代码,代码的速度会慢大约三倍。

2、根据我的经验,把Java代码转换成C++的代码,速度同样也会慢三倍。首先,这种比较根本没有意义,除非你能意识到用Java的方式去写Java代码,而不是像C++开发者那样去组织C++代码。

3、对于并发的数据结构使用Java往往更有效率。当数据结构不是并发使用时,JVM会消除内存屏障和同步,并倾向使用基于运行时性能分析的并发管理。

4、Java的动态内存管理往往更有效率,在过度使用动态内存管理和多线程的系统中效果尤其明显。

5、Java内联代码往往表现更加优秀,除非你基于分析器对C++代码进行了大量优化(或者确切地知道如何使用内联让C++更加高效……你肯定会爱上这些头文件!)。

6、使用Java的大型项目往往更容易优化,因为JVM为开发人员做了许多“全局”优化(比如内联动态加载的代码能力)。

一家之言,至少我的感觉是这样……

原文链接:quora 翻译:ImportNew.com - hackingwu
译文链接:http://www.importnew.com/16056.html
来自: importnew
9
5
评论 共 21 条 请登录后发表评论
21 楼 wmzsoft 2015-07-20 19:23
JAVA在模块化、插件化方面,也相当不错,最著名的有JIRA、JXADF(http://osgi.jxtech.net)一个开源的插件开发平台。
20 楼 ichenwenjin 2015-07-17 22:07
19 楼 jaedong 2015-07-12 17:35
laogao3232 写道
开发维护都快,开发大型一些的系统,java也更快。
原因我觉得是java更简单,c更难,你很难找那么多c的高手。

其实如果是复杂的那种高性能高并发的java后端,好的也很难找的。
18 楼 cuqing 2015-07-08 00:12
17 楼 shuhen2011 2015-07-06 17:46
文章说了跟没说一样
16 楼 renyuchuan 2015-06-10 16:21
JAVA刚满20年,第一句话就看出来LZ在吹牛。
15 楼 freezingsky 2015-06-08 22:08
quiii 写道
weiqingfei 写道
只有一种情况,就是你写的c++代码不如实现jvm的c++代码好的时候。

+1

说到点子上了!
14 楼 laogao3232 2015-06-08 17:04
开发维护都快,开发大型一些的系统,java也更快。
原因我觉得是java更简单,c更难,你很难找那么多c的高手。
13 楼 tieshow 2015-06-04 11:29
因为sun被oracle 收购了,可以吹一波
12 楼 kuchaguangjie 2015-06-03 17:58
C++ 对 编译时的优化 通常是针对所有机器的, 而 Java 是针对 每一种 机器的, 这就让 Java 有了更多的优化深度, 这是 为什么 有些 Java 代码 比 C++ 还快.

但是随着 机器性能已经不是问题的时代来了, 代码的可维护性, 可扩展形, 内存管理的简单, 让 Java 在很多领域更受欢迎.
11 楼 quiii 2015-06-03 15:26
weiqingfei 写道
只有一种情况,就是你写的c++代码不如实现jvm的c++代码好的时候。

+1
10 楼 quiii 2015-06-03 15:26
flashsnow 写道
开发的时候

+1
9 楼 quiii 2015-06-03 15:26
gosure 写道
JAVA刚满20年,第一句话就看出来LZ在吹牛。

很乘十的说
8 楼 weiqingfei 2015-06-03 14:23
只有一种情况,就是你写的c++代码不如实现jvm的c++代码好的时候。
7 楼 kuchaguangjie 2015-06-03 13:10
毫无意义的讨论...
6 楼 white_crucifix 2015-06-03 12:34
gosure 写道
JAVA刚满20年,第一句话就看出来LZ在吹牛。


卧槽厉害
5 楼 lizhuang 2015-06-03 11:01
debug的时侯
4 楼 comsci 2015-06-03 10:52
如果 JDK在byte这个变量上面,增加更多的操作函数,比如说整块byte数组读取或者写入,那用JAVA做的缓存架构会更加优秀,速度也更快
3 楼 gosure 2015-06-03 10:49
JAVA刚满20年,第一句话就看出来LZ在吹牛。
2 楼 flashsnow 2015-06-03 09:31
开发的时候

发表评论

您还没有登录,请您登录后再发表评论

相关推荐

  • 为什么说 Java 比 C++ 安全?

    难道是因为java的垃圾回收机制?

  • c比java运行快的原因_C/C++比JAVA快的原因

    大多数程序员都认为C/C++会比Java语言快,甚至于觉得从Java语言诞生以来,“执行速度缓慢”的帽子就应当被扣在头顶,这种观点的出现是由于Java刚出现的时候JIT编译技术还不成熟,主要靠解释器执行的Java语言确实性能...

  • 是学Java好呢?还是学C++更有前途?

    最近有不少初学编程的朋友问:他们比较倾向于Java和C++作为他们首选学习语言,...其实Java和C++一直名列世界编程语言排行榜的前几位,始终是热门的开发语言,下图是最近的世界编程语言排行榜: 不管是从世界......

  • 学C++还是学Java?做软件研发还需掌握哪些知识和技能?

    本文详细讲述了C++和Java两大热门语言的应用领域与使用场景以及从事软件研发岗位需要掌握的基础知识与技能。

  • Java为啥比PHP快?

    java 真的比php快吗,快又快在哪里,php有优化的方案吗?,php 8.0 jit有实际意义吗?

  • 萌新,C++、Java、Python 选择哪个好?

    如果你还处于大一,大二,或者刚刚入门阶段,那么我认为,语言的选择并不重要,更重要的是底层/通用基础的学习,例如数据结构,算法,计算机网络这些,因为这些语言,是存在很多相同的特性的,例如你学习了 C++,...

  • 为什么 c++ 比 java 运行的速度快

    最近和同学讨论算法题目的时候,突然讲到为什么 java 的速度比 c++ 慢,当时一知半解,雾里看花。 于是回来之后查了一下资料,整理一下放在这里,方便以后查看。 暂时理解到这个程度,如果以后有新的理解再做补充。 ...

  • 为什么Java永远比C++慢?

    为什么Java永远比C++慢?  耍过Java程序,或者用Java码过程序的人都晓得,Java要比用C++写成的原生程序要慢。这是咱用Java时已经承认的事实。   不过,很多人想要说服我们说这只不过是暂时的,他们说Java从

  • C++转Java快速入门

                    博主有C++基础,想学Java。以下内容是我边学边写的,主要通过与C++做一些对比来快速入门。         1、JDK、JRE与JVM

  • 论:学习语言哪个好?python、C++还是Java?

    如果你是一名具有前瞻性的开发者或者想成为一名具有前瞻能力的开发者的话,那么,你应该至少在最好的编程语言中选择一个,类似Python, JavaScript, C#, C, PHP, Java, C++ 或者 go。 我们来看一看综合实力比较强的...

  • java 和c 比优势_Java和C++各有什么优势。

    java是纯面向对象语言,javascrip其实和Java是完全不同的东西,他以前也不叫JavaScript,叫做etscape Navigator,据说是为了搭载Java的顺分车才改名叫js的,因为当时Java很火。JavaScript 是一种“脚本”,它直接把...

  • 毕业直接后端开发岗,选择C++还是java?

    我们来分析一下,2020 年 4 月,Java 仍然是 TIOBE 指数...现在看起来,C++ 则将是下一个超越 Java 的语言。具有高性能的高级编程是 C++ 表现出色的关键原因。C++ 语言每 3 年修订一次。此类修订包含突破性的新功......

  • 有人说Java比C++快?

    看到一篇让我不爽的文章:http://www-128.ibm.com/developerworks/cn/java/j-jtp09275.html Java的new应该和C++的object pool或者memory pool去比性能,而不是和malloc...Java比C++快这种论点,实在是只有傻瓜才会相信

  • 在基础语法中Java与c++有哪些不同?(对于学过c++转Java必看)

    Java和c++都是强数据类型的语言,但是在Java中整形的范围与运行Java代码的机器没有关系,解决了软件从应该平台移植到另外一个平台的问题,与之相反c++会根据不同的处理器选择最为高效的整形,会导致某个c程序在32位...

  • C++程序在linux下为什么比在windows下快?

    闲来无事做了一个横向和纵向对比,即C++在各平台下的运行速度,以及与其他语言如Java比较。 1.Java在myeclipse 2014,JDK1.8下,循环100亿次: 使用了精度极高,可以精确到纳秒的函数。 2.C++ 程序在visua ...

  • C++比Python快50倍?如何让C++和Python优势互补?(Boost::Python)

    国外有测试指出在相同复杂度算法中,C++约比Python快50倍左右。因此Python适合上层应用;C++则适合底层控制。本文介绍如何让C++和Python形成优势互补

  • Java与C++的优劣:谁更胜一筹?零基础实习学C++还是java呢

    你单纯学个java语法,你什么玩意也做不了,java的东西都在java之外。 上图仅供娱乐,不过今天我们主要探讨Java与C++间的优劣。 基础介绍 Java与C++都拥有相当长的历史,且语法相当类似,并被众多业界巨头所...

  • Java与c++的区别

    Java与c++的区别

  • 学c++好还是java好?

    Java因为是运行在虚拟机上,不需要考虑内存管理和垃圾回收机制。也是就你可以声明一个对象而不用考虑释放他,虚拟机帮你做这事情。而c语言本身没有多少内存管理的概念,写c程序如果用到指针就一定要考虑内存申请和...

Global site tag (gtag.js) - Google Analytics