呵呵,我用C++写了个向量类http://blog.csdn.net/blas/archive/2004/10/13/135281.aspx
你可以用java也写一个,测试一下那个更快,最好能把结果贴出来!注意我的向量类要用intel的c++编译器编译!

解决方案 »

  1.   

    这是技术问题,请不要转移到非技术区
    另外,本人不接受写程序的挑战:原因:
    1、本人不是java的最高手,我也不认为挑战者的程序是C++中最好的。
    2、这种挑战的结果既不全面也不权威,不能说明问题。
      

  2.   

    -------------------------------------------------------
    1、本人不是java的最高手,我也不认为挑战者的程序是C++中最好的。
    -------------------------------------------------------
    干吗要最好才能比较!咱们就拿一般的来比较一下就可以了!-------------------------------------------------------
    2、这种挑战的结果既不全面也不权威,不能说明问题。
    -------------------------------------------------------
    不是要比快吗,科学计算领域还不能说明问题?
    楼主是有贼心无贼胆!呵呵,偶不和你这种人计较!
    你把java高手请出来吧,让他们和我比也行!
      

  3.   

    是这样的,如果只是比较基本运算的运算速度,基本相当。
    java的class采用JIT后基本相当于本地代码了。(稍微蛮一点点,在我的机器上10000000好像是这个数量级的加法吧,慢500ms左右。)当然,如果VC不能优化代码,或者java也不能开优化,就够就另当别论了。其实,一般来说比较的速度,往往是比较实现的速度(基本库等基本功能)。不同人实现同样的功能,他的内存和性能可能是天壤之别。比来比去,其实实际意义没那么大的。现在的java的基本语句的执行速度,已经相当快了。至于,基本库的实现的速度,可能还有可以改善的空间(好像SUN也在一直努力改善)。
      

  4.   

    矩阵计算就是建立在基本运算基础之上的,你也应该明白矩阵计算在科学计算领域中的重要性吧!你可以把你的代码和性能测试数据贴出来,咱们对比一下!也让我见识见识比c/c++快的java啊!
      

  5.   

    我大学用C/C++ 写了三年的程序,工作后一直用java编程,
    自己感觉java程序要慢一些,个人意见。
      

  6.   

    我也感觉JAVA慢一点,但并不代表我不喜欢JAVA.我不喜欢的是C++.
      

  7.   

    JAVA不可能比C++快,在同等的编译水平下是这样的。java中间多了一层虚礼机
      

  8.   

    回复人:blas() ( 一级(初级)) 信誉:100  2004-10-17 15:50:58  得分:0
    ?  -------------------------------------------------------
    1、本人不是java的最高手,我也不认为挑战者的程序是C++中最好的。
    -------------------------------------------------------
    干吗要最好才能比较!咱们就拿一般的来比较一下就可以了!-------------------------------------------------------
    2、这种挑战的结果既不全面也不权威,不能说明问题。
    -------------------------------------------------------
    不是要比快吗,科学计算领域还不能说明问题?
    楼主是有贼心无贼胆!呵呵,偶不和你这种人计较!
    你把java高手请出来吧,让他们和我比也行!
    ====================================
    不要搞人身攻击,这是低素质的人的做为。上面的的十几篇文章从
    int(32bit)
    long(64bit)
    double math
    三角函数
    IO
    数组运算
    exception
    hashmap
    heapsort
    矩阵相乘
    嵌套循环
    字符串连接
    函数调用
    随机数产生
    对象创建做了非常全面的对比,你自己写的程序全面吗?权威吗?能比那十几篇文章更有说服力?看了这文章你就知道,完成同样的功能的程序,不同的写法速度差距可达十几倍甚至更多,所以不是高手写的程序根本不能说明问题。
    http://act.it.sohu.com/book/chapter.php?id=51&volume=1&chapter=9
      

  9.   

    以下是我摘录的《 关于Java的真相,JAVAer一定要看》中的部分内容。
    =================================
    这些人怎么连文章看都不看就说Java慢呢?不敢面对真相这才叫自欺欺人!
    这10篇文章对java、C、C++的性能做了全面的对比,包括内存、三角函数、启动速度、浮点、IO等等,其中还有测试用的C、C++、java的源代码,没有数据就不要“想当然”的乱说
    http://www.idiom.com/~zilla/Computer/javaCbench.html中给出了C++与java的性能对比数据,并讨论了:为什么“java慢”的观点如此流行
    总有人对我说:“Java比C++慢很多”,我问他慢在哪里,慢多少,他又答不出来。这种没有根据乱说话的人真是令人讨厌,他们除了会说“我觉得是这样”和骂人之外似乎不会别的了
    people are happy to discuss their speed impressions for many pages without ever referring to actual data.
    [技术短文]
    Java 相关的编译技术
    http://www.csdn.net/develop/author/cxy/java_compiler.shtm你要么有本事就拿出数据来,要么就同意java和C++一样快,别乱说话。
    累了,本想给大家提供一些有用的信息,改变一些人的错误想法,但有很多人都不敢正眼看这些事实,反正我说这些没有什么好处,只有吸收正确信息的人会得好处。愿不愿意吸收这些正确信息自己看着办吧。
    jbuilder的速度很快,启动稍慢不能说明 jbuilder运行慢。火车和飞机起跑比人慢不能说明火车和飞机在正常速度也比人慢。而且这不过是一种主观感受,不是数据我不理会。我给出的数据中有的文章说明了java程序启动比C++写的程序慢(JVM启动),但在正常运行的时候与C++的程序不分上下。那你说了半天还是没有数据。没有数据和事实的说法还不过是“想当然”而已我来说明我的贴子不是没有意义的,相反是非常有意义的:
    如果一家公司要开发一个软件,但对程序运行的速度要求很高,如果这个公司不知道我给的信息,他们可能会选用C++。如果知道了,则可能会选用java,由于java开发效率要高于C++,这样一个决定可能会为他们节约几十万甚至几百万的成本。别空说“不可能”,技术的进步已经让太多的“不可能”成真了。你如果没有实实在在的“数据”,就算说一万个“不可能”也没人相信你
    关于开发效率,如果有兴趣的话可以看看:
    http://www.csdn.net/news/newstopic/3/3874.shtml我给的10篇文章出自十个不同的机构或专家,性能测试从IO、浮点、三角无所不包。这么多权威而全面的报告你都不了承认,你又怎么会承认我写的java程序比你写的C++快?我给的数据已经太全面了,不需要再给出任何一样东西,但你喊了一万个“不可能”java比c++快,但你连0.5个数据也没有。你是一点底气也没有,一点让人信任的东西也没有。如果你还是0.5个数据也拿不出来,我不想再理你了。看来你就是我所说的那种“不顾事实乱说话的人”。你还可以没完没了的说:“理论上说,java肯定比C++慢很多,不过,至于慢在哪里,慢多少,我也不知道”。但最好在你自己的被窝里说,说十万次也没人管。但你要对别人说这样的话,就像我一样拿出事实和数据来,否则只能让你自己丢脸。我也不想和别人讨论快或慢的理论,有些人跟我讨论的所谓“理论”无非就是中国大学课本里的十几年前甚至几十年前的浅薄技术(如“解释执行”和“编译执行”这样的名词)。谁知道SUN有多少科学家搞了多少研究做了多少实验才找到高深的理论来优化Java使其在速度上超过C++,这些理论我不知道、不能知道、不必知道也不想知道,就算我是SUN的科学家,我能把这些理论讲的很明白别人也未必听的明白。我只知道事实是Java在很多方面的速度已经超过C++。谁想和我比编程,我不奉陪,原因如下:
    1、我不认为自己写的程序能达到java的最好水平,我也不认为别人写的C++能达到C++程序的最好水平。
    2、我不认为某人出的题目能客观全面的衡量java与C++的速度。
    3、如果谁想比较C++与Java的速度,请使用我给出的文章中的C++与java的原代码(非常多非常全面),我认为这些程序很客观。如果谁认为它们不客观请给出理由,不要说一万个“不客观”了事。“事实胜于雄辩”这句话相信大家都听过。请认为C++快的人回答:优化过的C++在以下方面比java快多少?int(32bit)
    long(64bit)
    double math
    三角函数
    IO
    数组运算
    exception
    hashmap
    heapsort
    矩阵相乘
    嵌套循环
    字符串连接
    函数调用
    随机数产生
    对象创建
    请给出测试的代码、电脑配置、编译器型号,操作系统等信息。要权威的文章,自己写的不全面不权威
    我给出的这么多C++和java代码,有人毫无根据的认为其中的C++的代码是没经过优化的。对于此种连代码都没看就说出的没根据的话,我不与理会
    建议想自己写程序的人先看过我给出文章,或给出权威全面的报告。你自己随便写的程序拿出来,说个结果,没多少权威性,也不全面,别人可以做为参考,但我本人很难承认你的一两个程序就能说明问题。
    http://www.tommti-systems.de/go.html?http://www.tommti-systems.de/main-Dateien/reviews/languages/benchs.html
    此文中的C++编译器用的是intel的,你怎么能说C++程序是没有经过CPU指令优化的呢?
    我也很想知道C++到底比Java快多少。Jet编译器就是把Java代码提前编译成本地代码,只不过不像NGEN.EXE那样是在安装时编译,而是在第一次编译就完成本地化的工作。
    你肯定没看楼主的原文就发表评论。那十篇文章从浮点、整数、循环等等都包括了,不只是函数库。我看些贴有近百回复了,关于“C++快”的权威数据还没看到,我想大家都很想看到。其实所有编程语言(C、C++、Delphi、VB、Java、汇编)都是在用某种方法实现0101010100000101010 的机器语言,现在比的就是哪种语言把01110001101010实现的更好跑得更快。如果C++比速度要用汇编实现底层库,可以,因为这不需要程序员考虑;但要让程序员写C++程序时也用汇编代码就未免太过分了吧?就如同java底层库是用C语言写的,但如果写java软件时还用C代码就不是在写 java了。所以现在比的就是:用java的功能实现0001010101010更快还是用C++的方式实现0001010101010更快。如果非要说 java是底层是用C写的,所以C++和Java比是也可以用汇编写代码,这种想法未免太无法让大多数程序员接受了。所以java和C+ +比较的原则就是:用java和C++自带的库,java和C++在写应用程序时都不借用其它语言实现0001010101001的机器代码。如果C++ 可以用汇编来实现010101010的机器代码来和java比,那么java也可以借用汇编来实现机器代码001010101010,那就不是在比C++ 和java了,而是在比汇编了。
    如果楼主的文章都正确无误,我们可以得出结论:用java实现01010101010的机器语言代码比用C++实现01010101010的机器语言代码更快,如果有人还想比用汇编、Delphi、VB、Smalltalk实现 01010101010的机器语言代码谁快,那是另一个问题了,不适合在此讨论如果java的三角函数比C++快,不论 java的三角函数是用C++、C、汇编、机器语言写的,或是因为用jet优化后才变得如此的快,对于我们程序员来说都不需要考虑,因为程序员不需要懂C ++、C、汇编、机器语言,只需要懂java,就可以写出比只懂C++的程序员写出的三角运算程序快。
    所以,如果我要学习,我就会只学java,不学习C++、C、汇编、机器语言、Delphi、VB,因为java的开发效率是C++的三倍(http://www.csdn.net/news/newstopic/3/3874.shtml),速度和C++相同。
      

  10.   

    以下是我摘录的《 关于Java的真相,JAVAer一定要看》中的部分内容
    ==========================================
    Intel C++ VS JavaIntel(R) C++ Compiler for 32-bit applications, Version 8.0 Build 20031017Z
    compiler 优化选项: /Op /Oy /Qpc80 /fast /G6 /Oi /Og /Ot /EHsc /arch:SSEhttp://dev.csdn.net/article/35/35356.shtm (与下同)
    http://www.tommti-systems.de/go.html?http://www.tommti-systems.de/main-Dateien/reviews/languages/benchs.html
    那些连文章看都没看就说和java进行比较的C++没有进行CPU指令优化的人真是可怜。还有嘴巴不干净的更可怜。整天把“冯诺伊曼理论”挂在嘴边的人真是可笑,难道这些人懂jvm的复杂优化原理?懂java本地化的高深编译原理?只懂个皮毛也在这里吹嘘。我不懂这些高深的理论,我早就很诚实的承认过了,本人没达到SUN科学家的水平,所以不会和别人讨论高深的原理。至于“冯诺伊曼理论”“解释执行”这类非常基本的原理无法说明java速度快的原因,所以也没有讨论的必要。
    至少我知道这些信息后,我发觉自己的世界变的宽广了,高强度的计算软件我可以用java来写,绘图我可以用java来试试,甚至可以用java来写加密、压缩这类软件挑战一下了,没准还可以写个3D游戏之类的玩玩。当然这在以前我是想都不敢想的。我的世界变的更大了,我的世界不再无聊了。至于那些“晚饭都没有胃口”的人一定会觉的无聊的如果这个信息能大大扩展所有java程序员的世界让他们能去写原来不能写的程序,并为许多公司和个人节约大量的金钱,创造更多的财富,你说有意义吗?对于java的速度,我现在只坚信“权威全面的事实和数据”,对于某些人拿简单的基础理论去评说java的新的优化技术,就如同拿“牛顿力学”去说明“量子力学”的现像一样可笑。本人没有研究“量子力学”的造诣,也没看到这里有哪个人有此造诣,所以不打算讨论“量子力学”。而这么多在讨论“牛顿力学”的人又拿不出什么权威文章让大家信服他们的“理论”能用在这些“在牛頓力学理论里让人难以置信的事实”上。有人说“有些人自己都没有认真看过,分析过,就以为那个是真理了”是“恶心”的。那么如果“有些人自己都没有认真看过,分析过,就以为那个是错误的”,是否“恶心”呢?另外,请pankun(剑神一笑 如履薄冰) 再开个贴子证明“搞IT必须学汇编”这个旷世奇谈吧,你再这里copy-paste十万遍“搞IT必须学汇编”也不能让人相信的。看你能在“事实”上还是“理论”证明这个“伟论”,如果证明了,没准能得个“诺XX奖”呢“谁主张谁取证”是基本原则,请谈“牛顿力学”的人先给出权威文章证明你们的“理论”适用于此处。否则光是copy-paste、说别人是“民工”、看不起 SUN的“民工”、空说别人“错误”或“胡说八道”是没有一丁点儿用的。至于“人身攻击”这类可笑的把戏本人无所谓,如此素质的人论坛到处都是,如果和此种人生气,我早就气的吐血身亡了,是绝不会连“吃饭都没胃口”地,呵呵请再给出“理论”的人把文章的“出处”给出,如果你没有权威文章证明你的“理论”适用于最新的java优化原理,你的“理论”就不值得讨论。能赢得此辩论的只有两样东西:权威全面的事实和数据、权威全面的理论文章。
    我也来给出个数据Performance tests show Java as fast as C++
    http://www.javaworld.com/javaworld/jw-02-1998/jw-02-jperf_p.html
    其中还有一些“理论”说明java运行原理我看上面的http://www.javaworld.com/javaworld/jw-02-1998/jw-02-jperf_p.html 中提到了jit的“dead code”技术IBM说他们的java JIT编译器有如下优化技术,谁能一个一个解释一下?好像大学课本里一个也没讲过
    Features of IBM Java JIT compiler
    http://www.trl.ibm.com/projects/jit/detail_e2.htm
    以下文章说了IBM JIT的原理,共35页,英文,有兴趣可以看看。其中说96年到2001年,同样配置下每年jvm的速度都在提升,2001是96年的10倍。我没有全看懂,不过大家可以一起来讨论一下给搞明白新的JIT理论:总抱着“老理论”的“C++快”的人们,update一下你们的大脑吧
    http://www.is.titech.ac.jp/ppl2004/proceedings/ishizaki_slides.pdfhttp://www.is.titech.ac.jp/ppl2004/proceedings/
    上还有许多文章
      

  11.   

    这个话题根本就没有讨论的意义。
    首先 Java 比 C++ 慢,这是肯定的。
    VM 永远快不过 真正的 CPU 的。这是不容质疑的。一般来说,Java 除了启动慢一点,非GUI程序大约是 1.1~1.5 倍C++程序的时间。
    而 GUI 程序大约是 2-3 倍C++程序的时间。
    (这里的C++程序指的是不使用 .net 库的。如果使用了 .net 库,速度和 Java 程序基本没有差别)
    这是为了实现跨平台必须要付出的代价。但 Java 的简单,跨平台的特性,也是其巨大的优势。
    再说现在的新电脑谁不是 P4 3.0G + 512M 以上的配置。
    大家真的在乎自己的程序是在 0.01S 执行完,还是在 0.015S 执行完的。这有差距吗??大家关心的应该是更好的算法,差劲的算法才是程序执行慢的真正原因。
    至于语言,根本就是个人的喜好,没什么好对比的。
      

  12.   

    啾!肯定是先要看要JAVA来干什么?要C++来干什么???
    不同的作用速度也不一样啦!!
    世界上的东西都是有优点,有缺点的!!!
    还比什么比??!!浪费时间!!有空去劫富济贫还有“功劳”一些!!!!
      

  13.   

    回复人:abcdhy(程旭) ( 三级(初级)) 信誉:100  2004-10-18 16:55:37  得分:0
    ?  这个话题根本就没有讨论的意义。
    首先 Java 比 C++ 慢,这是肯定的。
    VM 永远快不过 真正的 CPU 的。这是不容质疑的。一般来说,Java 除了启动慢一点,非GUI程序大约是 1.1~1.5 倍C++程序的时间。
    而 GUI 程序大约是 2-3 倍C++程序的时间。
    (这里的C++程序指的是不使用 .net 库的。如果使用了 .net 库,速度和 Java 程序基本没有差别)
    这是为了实现跨平台必须要付出的代价。但 Java 的简单,跨平台的特性,也是其巨大的优势。
    再说现在的新电脑谁不是 P4 3.0G + 512M 以上的配置。
    大家真的在乎自己的程序是在 0.01S 执行完,还是在 0.015S 执行完的。这有差距吗??大家关心的应该是更好的算法,差劲的算法才是程序执行慢的真正原因。
    至于语言,根本就是个人的喜好,没什么好对比的。
    ====================
    没有根据乱说话
    请认为C++快的人回答:优化过的C++在以下方面比java快多少?int(32bit)
    long(64bit)
    double math
    三角函数
    IO
    数组运算
    exception
    hashmap
    heapsort
    矩阵相乘
    嵌套循环
    字符串连接
    函数调用
    随机数产生
    对象创建
    你还可以没完没了的说:“理论上说,java肯定比C++慢很多,不过,至于慢在哪里,慢多少,我也不知道”。但最好在你自己的被窝里说,说十万次也没人管。但你要对别人说这样的话,就像我一样拿出事实和数据来,否则只能让你自己丢脸。
      

  14.   

    照此人说法,那就是说java编的程序的运行速度可以超过jvm的速度。因为jvm是c写的…………
      

  15.   

    java可以写操作系统了…………
      

  16.   

    曾经遇到过一件有趣的事,一个客户的认证服务器用java写的,我们的服务器用c++写的,两服务器通过tcp通信,接口定义好了,运行不通过,调试发现java的整型数用的是网络字节顺序,我在我们的服务器端做了字节顺序转换才好的。对intel处理器汇编了解的人都知道,x86处理器的整数运算都是按主机字节顺序方式工作的,一个四字节整数的加或减操作只要一条机器指令,而用java做这种运算,不管jvm机制如何,处理器只认机器指令,所以它的网络字节顺序要变为主机字节顺序,计算完毕再转换为网络字节顺序,从这点看,一个单纯的加减法操作,java执行起来肯定不会少于两条机器指令。java的优点是一次编译,到处运行。如果用它来跟c++比速度,个人认为是以己之短攻彼之长
      

  17.   

    建议楼主看一下计算机组成原理
    顺便说一下,JVM是用C++成的
      

  18.   

    .......真是郁闷......竟然有人用语言比较速度.要比的是编译技术吧?
    同样是C++编译器,同样的代码执行的速度还要差很多呢!Java也一样,我不信IBM的Java平台和SUN的速度一样快.而编译及编译优化技术,在x86平台没人比Intel更NB了,如果SUN的Java程序在x86平台上比Intel的C++更快,那Intel可以去死了.在数值处理方面,Sun的Java平台的确已经很快了,几乎和MS的C++编译器生成的代码一样了.但语言本身的一些特性决定了Java在做很多事时要比C++多做一些工作,比如垃圾收集等等.
    通常,相同水平的Java程序和C++程序相比,C++的几乎是肯定要快一些的.
      

  19.   

    既然是技术的问题就从技术方面来解决:(java不可能快过c++)但java是神圣的!!!
    首先来说大家应该对堆,栈,静态存储区的概念应该很了解吧
    java的类被放在栈里,而c++的被放在静态存储区,
    速度应该是显而易见的!!!动态是不会快过静态的(但是只是基于win32)如果这些开发用在其它地方就不一定了:
    web 分布式系统...
      

  20.   

    慢就是慢,人人都在体会JAVA慢,那有人体会C++慢啊
      

  21.   

    我也感觉JAVA慢一点,但并不代表我不喜欢JAVA.我不喜欢的是C++.
      

  22.   

    java一个字慢
    这也不是我说的
    是我咨询了广大民众的结果
      

  23.   

    Java JIT: Just In Time. Example : IBM,SUN Compiler
    Java AOT: Ahead Of Time. Example: JET Compiler、GCJ(GNU Compiler for Java)Slow VS Fast?
    Feeling VS Truth?我相信事实,但有些人相信感觉
    把你的左手放到一盆冰水中,同时右手放到一盆60度的水中,保持5分钟。
    然后把两手分同时放到一盆30度的水中,这时,
    你的左手的“感觉”告诉你的河水温和你的右手的“感觉”肯定不一样,请问你相信你的左手还是右手?我都不相信,我只相信温度计
      

  24.   

    有时我也“感觉”Java慢,比如点开JBuilder的一个菜单要一两秒,
    但发生这种现像时硬盘灯都在狂闪,可能是因为从硬盘读取数据,
    这“感觉”一点也不能说明java慢,只能说明“硬盘读取比内存和CPU慢”
      

  25.   

    坚信你的“感觉”的人看看这个吧,看看你的“感觉”到底可不可信
    http://life.home2.cernet.cn/move/2004/1112/336.html
      

  26.   

    想要更多的测试你的“感觉”的准确度,请来此处:
    http://www.google.com/search?num=30&hl=zh-CN&newwindow=1&q=%E9%94%99%E8%A7%89+%E5%9B%BE%E7%89%87&btnG=%E6%90%9C%E7%B4%A2&lr=
      

  27.   

    启动JBuilder时挺慢,但硬盘狂闪。
    启动Word、Outlook时也很慢
    这些不能说明Java和C++谁快
      

  28.   

    论坛上成天有人拿JAVA更别人比速度
    论坛上没见有人成天拿C++更别人比速度论坛上成天有人拿Linux更别人比好用
    论坛上没见有人成天拿Windows更别人比好用我是JAVA也用C++也用,Windows也用Linux也用,都好用:)
      

  29.   

    因为大家对“超越”的兴趣远大于“保持”
    JIT Optimization techniques JIT优化技术(以下翻译可能不是很准确):Dataflow analysis  数据流分析
    Elimination of redundant tests  删除冗余测试
    Translation from stack operations into register operations  将堆栈操作转翻译成寄存器操作
    Code scheduling  代码调度
    Reduction of memory accesses by register allocation  用寄存器分配减少内存访问
    Method inlining  方法内联
    Dead-code elimination  “死码”删减
    Elimination of common sub-expression  删减共同子表达式
    Loop versioning  循环版本化
    Versioning of virtual method calls  虚方法版本化
    Constant propagation  常数扩展http://www.trl.ibm.com/projects/jit/detail_e2.htm新的JIT理论:JIT compiler
    – Method invocation optimization[OOPSLA00][JVM02]
    – Exception optimization[ASPLOS00][OOPSLA01][PACT02]
    – Profiling based optimization[JG00][PLDI03][PACT03]
    – Float optimization[JVM02][ICS02]
    – 64bit architecture optimization[PLDI02]
    – Register allocation[PLDI02]
    – Data prefetch[PLDI03]
    – Instruction Scheduling[CGO03]
    – Compiler overview[JG99][IBMSysJournal00][OOPSLA03]
    􀂃 Runtime systems
    – Fast lock[OOPSLA99][OOPSLA02][ECOOP04]
    – Fast interpreter[ASPLOS02]http://www.is.titech.ac.jp/ppl2004/proceedings/ishizaki_slides.pdf
    http://act.it.sohu.com/book/chapter.php?id=51&volume=1&chapter=9
    http://act.it.sohu.com/book/serialize.php?id=51
      

  30.   

    别总抱着老想法了
    看看java用的新技术吧举例:
    Translation from stack operations into register operations 将堆栈操作转翻译成寄存器操作(寄存器操作比堆栈操作快的多也是公认的事实吧?)
    Reduction of memory accesses by register allocation 用寄存器分配减少内存访问(学过计算机组成原理就知道寄存器操作比内存操作快)
    Method inlining 方法内联(学过编译原理都知道内联比常规调用快,JIT把Java的方法调用变成了内联)
      

  31.   

    谁来给C++程序做内联呢?难道你在编译时把整个Office内联成一个超大的exe吗?
    谁来将C++的堆栈操作转翻译成寄存器操作呢?上帝吗?
    谁来将C++中的冗余代码删除吗?只要你已经编译了,你就只能认命了,但JIT可以帮java做到程序员做不到的事(“死码”删减技术)
      

  32.   

    C++也是是一个年轻的语言,可是JAVA比它活跃得多,人们对它们寄予了太多得希望,可总是在JAVA那里获得更多的回应,C++就好像一个没人认领的孩子只在偶尔有人给它一些施舍,JAVA却是有妈的孩子象块宝真是幸福啊...
      

  33.   

    楼主的计算机功力还不深厚,你去学学系统结构在来这里比吧。JAVA快不过C++。在相当的编译水平下。我也是JAVA爱好者,但是还是要尊重科学,尊重事实。其实比也没有意义。楼主,你有空去研究下虚拟机,别无聊在这发贴了。真的没有意义。
      

  34.   

    知道这些信息后,许多人的世界变的宽广了,高强度的计算软件可以用java来写,
    绘图可以用java来写,甚至可以用java来写加密、压缩这类软件,
    还可以写3D游戏。当然这在以前是想都不敢想的。
    java程序员的世界变的更大了。
    通常以上所说的软件都要用C++一类的程序来写,可C++的开发效率只有java的三分之一。
    用java为企业和个人节约的成本是无法估计的。
    你说有没有意义?
      

  35.   

    这文章中就是java速度超过C++的秘密:
    http://www.is.titech.ac.jp/ppl2004/proceedings/ishizaki_slides.pdf
      

  36.   

    大家看看,这就是一个被“C++比Java快”这个错误信息害了的公司(相信这样的公司还有无数):作  者:  fanocean (沧海e粟)
    这几天在实验室搞一个数据挖掘的项目,用户要求明明是用java写的,但是大家坚持用C++写挖掘算法,说C++比java效率高^_^害得我还要用JNI
    http://community.csdn.net/Expert/TopicView3.asp?id=3548405
      

  37.   

    http://community.csdn.net/Expert/TopicView3.asp?id=3435149
      

  38.   

    http://www.tommti-systems.de/go.html?http://www.tommti-systems.de/main-Dateien/reviews/languages/benchs.html
    中前两个表格中都用了java 1.5 alpha测试版,所以我们只看第三个表格中的结果:各种语言在各个方面中夺取的第一名:java 1.4.2_03:
    double math
    trig Math
    IO
    exception
    hashmap
    hashmaps
    list
    nested loop
    C#
    string concatC++ (MS 或 Intel)
    int32 math
    long 64 math
    array
    heapsort
    matrix multiply值得一提的是:
    以上测试中,java在exception上的处理速度竟是C++的约18倍
    ======================
    http://www.javaworld.com/javaworld/jw-02-1998/jw-02-jperf_p.html
    中:
    java和C++在以下方面打成平手(精确到小数点后一位,完全相同)
    Integer division
    Dead code
    Dead code with Integer division
    Floating-point division
    Static method
    Member method
    Virtual member method但java在以下方面的速度是C++的约3倍
    Virtual member method with down cast and Run-Time Type Identification (RTTI)
    =================
    http://kano.net/javabench/
    中的14个不同的Bench程序中,java有9项第一,C++有5项第一http://www.idiom.com/~zilla/Computer/javaCbench.html
    中5种Bench
    java全胜。
    其它的大家自己看吧