据××说JAVA比C++甚至C快 Java运行速度慢这是一个不容忽视的问题,我的大学Java老师说是微软在操作系统里面增加了某些东西限定了Java的运行速度。但是到了非Windows系统下,比如Linux下的运行速度也并没有太大的提高~ 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 为避免有人认为我是故意挑起争端http://blog.csdn.net/lgx522/archive/2004/08/23/82187.aspx回帖里有人这么说,小可只是来贵宝地映证一下。 应该有前提:如使用专门的JAVA处理器,和操作系统!(SUN公司有这些专门的硬件和软件) to qfknet你大学老师真是有点儿那个,不学无术。 加什么条件,在什么情况下,JAVA会比C快? 用专门的CPU(SUN做过这样的CPU),或编译为.exe文件(不过这好像也只能与C相当)。否则好像。 效率不仅仅是运行for (int i = 0; i < 10000000; i++);的速度,而且还包括开发效率,同样类型的程序的处理效率等很多种。首先在开发效率上,C/C++,我想很难超过java/.net。就好像汇编的开发效率永远赶不上高级语言一样。当然这个也是和两者涉及的开发领域也是有关系的。仅仅就纯运行速度而言,打死我也不相信java/C#会超过C/C++,持平倒是有那么一点可能性的。比如ORACLE里面虽然内核到底是否是纯java的我不清楚,但是里面一定有java的成分,而且这个比例不是很小。我想应该没有多少人会怀疑oracle的性能的吧。To ShaftWhy: 回复人: ShaftWhy(归去来兮) ( ) 信誉:100 2004-08-25 11:00:00 得分: 0 to qfknet你大学老师真是有点儿那个,不学无术。 qfknet所说 我的大学Java老师说是微软在操作系统里面增加了某些东西限定了Java的运行速度。这个不知道是不是事实,但是这确实曾是MS被控垄断的罪状之一。好像原来的表述是故意在Windows操作系统中增加某些东西,导致竞争对手的软件产品(包括java,还有netscape)的性能下降,甚至出现非法操作这样的错误。 在宽广的马路上,奔驰肯定比马车快,不过在崎岖的小路上,那结果就会倒置。程序代码得快,还是慢,不是说出来的,是做出来的。如果你自己认为c的速度快,那么你能保证你用c实现的系统速度一定比人家用java实现得快????程序是一个整体,不要单纯的去追求某些东西。即使你的程序真的很快,也未必就比人家慢的程序好。时刻记住,中庸之道。 http://community.csdn.net/Expert/TopicView.asp?id=3233892JAVA与DELPHI字符串性能比较如果有兴趣,可以看一下。Java 的StringBuffer类可以说是优化的很好。 据××说JAVA比C++甚至C快:各位看好了,ShaftWhy不是说运行快. 除了编译/解释的区别导致速度没法比较之外,我还想到了一个问题。C/C++的程序如果没写好,很容易数组越界,什么缓冲区溢出的问题也接踵而至。Java/C#在牺牲了性能的前提下,提高了安全性。我想,很多程序员以及很大一部分项目,都宁愿牺牲速度而换取安全性。提到安全性,曾经有个笑话,说NASA的Spacecraft因为一句if (i=3) 而自爆了 在某些条件下, Java是可能比C/C++快的Java是在内存堆中批量释放应该销毁的对象, 而通常C/C++都是即使销毁这一点上Java的效率要比C/C++快, 当然C/C++也能这么实现, 但是通常都不会另外Java只是启动时慢, 及时编译成本地码之后, 就是本地码的速度当然这个及时编译成的本地码通常没有C/C++的优化好, 但是目前也并不显得很差Java最大的问题其实是要启动虚拟机, 这是个很大的负担, 占用了很多内存和CPU但是启动之后并不慢了, 你看看基于Java的Web服务器, 其速度比C/C++实现的服务器慢多少呢? 不是图形界面,启动好JVM以后,采用-server模式,运行速度与C++差的并不多 java编译后的字节码,还要经过JVM解释成机器码, 而c c++的字节码直接由芯片解释成机器码。所以我认为以后支持java的芯片成熟了,java的速度将得到很大的提高, 听说sun公司已经生产出这样的芯片了不知道我说的对不对, 请指正 http://community.csdn.net/Expert/TopicView.asp?id=3233892JAVA与DELPHI字符串性能比较如果有兴趣,可以看一下。Java 的StringBuffer类可以说是优化的很好。---------------------------------------------java是不错,但在速度方面确实是差一点,也是事实。请某些偏激的java fans不要抓住一点点就无限放大。 汗……我可不是java fans,说我是delphi fans更恰当些。这只是一个比较而已,在某些情况下java可能是更快一些,当然在多数情况下C可能会更快。 由于JAVA采用了虚拟机方式,所以就牺牲了不少速度。据说目前JAVA编译器也开始向不采用虚拟机,即直接编译成机器码的方式运行。日后有望能接近C++的编译和执行速度,但是超过C是绝对不可能的。因为C其实是一种中级语言,都有点类似于汇编了。当然,我说的是一般情况,部分特定程序除外。 后话是,我也不是JAVA fans...来灌水而已:) java在某些方面上速度快的获得是由其算法设计决定的,你可以用C来实现同样的机制,这样速度能比JAVA快,但这样的重写无疑会增加很大的工作量,而JAVA或JVM本身就内置了这样的实现,比如缓存、命中率等相关的实现。另外在某种情况下由于java的垃圾收集可能不进行(JVM可能会根据有关环境做出选择),这样就相当于它一直在做事没有休息(delete)的时候,而C写的程序可能会变成做一些事情之后就小憩(delete)一会,这样在最需要做事的情况下,java做得比较卖力,而C有一会在休息。做了一阵事情之后,JVM看到目前好像没什么任务了,则它就开始睡觉(垃圾收集)了。这样的结果就有可能造成JAVA的性能比C高。当然,你也可以用C来实现同样的机制,这样JAVA就比不上C了,但这样的工作量不小。 我做程序员4年了,JAVA我学了两年,原来是个铁打的反微软的,至于为什么反微软,我也不知道,配一个jsp的环境,我零星的用了半年时间,屋里的java书籍几乎耗掉我全部积蓄,最后我靠VB,ASP赚了钱,买了房,回头再看我自己,居然没有正式学过一天VB和ASP,我现在用.NET感觉变化比较大,但是很有劲,因为我会C++。那些发牢骚的人,我想让你们知道:微软不光在底端产品优势巨大,在高端市场,微软的sharepoint等一系列产品也让JAVA撑不住了。举个简单的例子,搞B/S软件的都知道,你没有办法实现网络在线修改WORD、EXCEL。而sharepoint却轻松自然。就这么一个简单实用的东西,jsp能实现吗?如果有,别忘了告诉我,哈哈。。 Java从运行速度上来说,应该是不如C的 这种可能性还是比较小的,使用过java的应该能体会到它的确比较慢,特别是处理图形界面时,的确比vb,c,delphi要来得慢,因为java编译完后还要解释才能运行,而且工作在虚拟机之上,从理论上是不会比c快的,但不知道SUN说要研制的java芯片,java操作系统(jos)出来后会怎么样,期待中! 需要中间传递(JVM)的代码怎么可能比直接的机器码快? 除非不用JVM 而是直接用物理机器执行字节码否则 纯属放屁。。 请指出这个小程序的错误,并写出详细解释 问问String和StringBuffer 求助 Java Jtree!我没有分,但希望有人可以帮我一下 急啊 高人来解释一下,为什么有人推荐“不要在循环体内定义变量” 请问各位大虾!如何在Applet中显示Jfreechart生成的图像?????? 在线候教 精通JFreeChart的高手帮帮忙啊!!! 求议论,关于子父类私有变量问题 求教2个程序,一个运行于客户端,一个运行与服务器端 恳请各位走在前面的人告诉我山后面是什么? 轻松解答,高分相送! 关于swing中的JTree 听说 Java 2 核心技术 卷II:高级性能要出第6版了?
http://blog.csdn.net/lgx522/archive/2004/08/23/82187.aspx
回帖里有人这么说,小可只是来贵宝地映证一下。
to qfknet你大学老师真是有点儿那个,不学无术。
qfknet所说 我的大学Java老师说是微软在操作系统里面增加了某些东西限定了Java的运行速度。
这个不知道是不是事实,但是这确实曾是MS被控垄断的罪状之一。好像原来的表述是故意在Windows操作系统中增加某些东西,导致竞争对手的软件产品(包括java,还有netscape)的性能下降,甚至出现非法操作这样的错误。
在宽广的马路上,奔驰肯定比马车快,不过在崎岖的小路上,那结果就会倒置。程序代码得快,还是慢,不是说出来的,是做出来的。如果你自己认为c的速度快,那么你能保证你用c实现的系统速度一定比人家用java实现得快????程序是一个整体,不要单纯的去追求某些东西。即使你的程序真的很快,也未必就比人家慢的程序好。时刻记住,中庸之道。
JAVA与DELPHI字符串性能比较
如果有兴趣,可以看一下。
Java 的StringBuffer类可以说是优化的很好。
各位看好了,ShaftWhy不是说运行快.
Java是在内存堆中批量释放应该销毁的对象, 而通常C/C++都是即使销毁
这一点上Java的效率要比C/C++快, 当然C/C++也能这么实现, 但是通常都不会
另外Java只是启动时慢, 及时编译成本地码之后, 就是本地码的速度
当然这个及时编译成的本地码通常没有C/C++的优化好, 但是目前也并不显得很差
Java最大的问题其实是要启动虚拟机, 这是个很大的负担, 占用了很多内存和CPU
但是启动之后并不慢了, 你看看基于Java的Web服务器, 其速度比C/C++实现的服务器慢多少呢?
机器码。所以我认为以后支持java的芯片成熟了,java的速度将得到很大的提高, 听说sun公司已经
生产出这样的芯片了不知道我说的对不对, 请指正
http://community.csdn.net/Expert/TopicView.asp?id=3233892
JAVA与DELPHI字符串性能比较
如果有兴趣,可以看一下。
Java 的StringBuffer类可以说是优化的很好。---------------------------------------------java是不错,但在速度方面确实是差一点,也是事实。请某些偏激的java fans不要抓住一点点就无限放大。
我可不是java fans,说我是delphi fans更恰当些。
这只是一个比较而已,在某些情况下java可能是更快一些,当然在多数情况下C可能会更快。
当然,我说的是一般情况,部分特定程序除外。
否则 纯属放屁。。