Java运行速度慢这是一个不容忽视的问题,我的大学Java老师说是微软在操作系统里面增加了某些东西限定了Java的运行速度。
但是到了非Windows系统下,比如Linux下的运行速度也并没有太大的提高~

解决方案 »

  1.   

    为避免有人认为我是故意挑起争端
    http://blog.csdn.net/lgx522/archive/2004/08/23/82187.aspx
    回帖里有人这么说,小可只是来贵宝地映证一下。
      

  2.   

    应该有前提:如使用专门的JAVA处理器,和操作系统!(SUN公司有这些专门的硬件和软件)
      

  3.   

    to qfknet你大学老师真是有点儿那个,不学无术。
      

  4.   

    加什么条件,在什么情况下,JAVA会比C快?
      

  5.   

    用专门的CPU(SUN做过这样的CPU),或编译为.exe文件(不过这好像也只能与C相当)。否则好像。
      

  6.   

    效率不仅仅是运行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)的性能下降,甚至出现非法操作这样的错误。
      

  7.   


    在宽广的马路上,奔驰肯定比马车快,不过在崎岖的小路上,那结果就会倒置。程序代码得快,还是慢,不是说出来的,是做出来的。如果你自己认为c的速度快,那么你能保证你用c实现的系统速度一定比人家用java实现得快????程序是一个整体,不要单纯的去追求某些东西。即使你的程序真的很快,也未必就比人家慢的程序好。时刻记住,中庸之道。
      

  8.   

    http://community.csdn.net/Expert/TopicView.asp?id=3233892
    JAVA与DELPHI字符串性能比较
    如果有兴趣,可以看一下。
    Java 的StringBuffer类可以说是优化的很好。
      

  9.   

    据××说JAVA比C++甚至C快:
    各位看好了,ShaftWhy不是说运行快.
      

  10.   

    除了编译/解释的区别导致速度没法比较之外,我还想到了一个问题。C/C++的程序如果没写好,很容易数组越界,什么缓冲区溢出的问题也接踵而至。Java/C#在牺牲了性能的前提下,提高了安全性。我想,很多程序员以及很大一部分项目,都宁愿牺牲速度而换取安全性。提到安全性,曾经有个笑话,说NASA的Spacecraft因为一句if (i=3) 而自爆了
      

  11.   

    在某些条件下, Java是可能比C/C++快的
    Java是在内存堆中批量释放应该销毁的对象, 而通常C/C++都是即使销毁
    这一点上Java的效率要比C/C++快, 当然C/C++也能这么实现, 但是通常都不会
    另外Java只是启动时慢, 及时编译成本地码之后, 就是本地码的速度
    当然这个及时编译成的本地码通常没有C/C++的优化好, 但是目前也并不显得很差
    Java最大的问题其实是要启动虚拟机, 这是个很大的负担, 占用了很多内存和CPU
    但是启动之后并不慢了, 你看看基于Java的Web服务器, 其速度比C/C++实现的服务器慢多少呢?
      

  12.   

    不是图形界面,启动好JVM以后,采用-server模式,运行速度与C++差的并不多
      

  13.   

    java编译后的字节码,还要经过JVM解释成机器码, 而c c++的字节码直接由芯片解释成
    机器码。所以我认为以后支持java的芯片成熟了,java的速度将得到很大的提高, 听说sun公司已经
    生产出这样的芯片了不知道我说的对不对, 请指正
      

  14.   


    http://community.csdn.net/Expert/TopicView.asp?id=3233892
    JAVA与DELPHI字符串性能比较
    如果有兴趣,可以看一下。
    Java 的StringBuffer类可以说是优化的很好。---------------------------------------------java是不错,但在速度方面确实是差一点,也是事实。请某些偏激的java fans不要抓住一点点就无限放大。
      

  15.   

    汗……
    我可不是java fans,说我是delphi fans更恰当些。
    这只是一个比较而已,在某些情况下java可能是更快一些,当然在多数情况下C可能会更快。
      

  16.   

    由于JAVA采用了虚拟机方式,所以就牺牲了不少速度。据说目前JAVA编译器也开始向不采用虚拟机,即直接编译成机器码的方式运行。日后有望能接近C++的编译和执行速度,但是超过C是绝对不可能的。因为C其实是一种中级语言,都有点类似于汇编了。
    当然,我说的是一般情况,部分特定程序除外。
      

  17.   

    后话是,我也不是JAVA fans...来灌水而已:)
      

  18.   

    java在某些方面上速度快的获得是由其算法设计决定的,你可以用C来实现同样的机制,这样速度能比JAVA快,但这样的重写无疑会增加很大的工作量,而JAVA或JVM本身就内置了这样的实现,比如缓存、命中率等相关的实现。另外在某种情况下由于java的垃圾收集可能不进行(JVM可能会根据有关环境做出选择),这样就相当于它一直在做事没有休息(delete)的时候,而C写的程序可能会变成做一些事情之后就小憩(delete)一会,这样在最需要做事的情况下,java做得比较卖力,而C有一会在休息。做了一阵事情之后,JVM看到目前好像没什么任务了,则它就开始睡觉(垃圾收集)了。这样的结果就有可能造成JAVA的性能比C高。当然,你也可以用C来实现同样的机制,这样JAVA就比不上C了,但这样的工作量不小。
      

  19.   

    我做程序员4年了,JAVA我学了两年,原来是个铁打的反微软的,至于为什么反微软,我也不知道,配一个jsp的环境,我零星的用了半年时间,屋里的java书籍几乎耗掉我全部积蓄,最后我靠VB,ASP赚了钱,买了房,回头再看我自己,居然没有正式学过一天VB和ASP,我现在用.NET感觉变化比较大,但是很有劲,因为我会C++。那些发牢骚的人,我想让你们知道:微软不光在底端产品优势巨大,在高端市场,微软的sharepoint等一系列产品也让JAVA撑不住了。举个简单的例子,搞B/S软件的都知道,你没有办法实现网络在线修改WORD、EXCEL。而sharepoint却轻松自然。就这么一个简单实用的东西,jsp能实现吗?如果有,别忘了告诉我,哈哈。。
      

  20.   

    Java从运行速度上来说,应该是不如C的
      

  21.   

    这种可能性还是比较小的,使用过java的应该能体会到它的确比较慢,特别是处理图形界面时,的确比vb,c,delphi要来得慢,因为java编译完后还要解释才能运行,而且工作在虚拟机之上,从理论上是不会比c快的,但不知道SUN说要研制的java芯片,java操作系统(jos)出来后会怎么样,期待中!
      

  22.   

    需要中间传递(JVM)的代码怎么可能比直接的机器码快?
      

  23.   

    除非不用JVM 而是直接用物理机器执行字节码
    否则 纯属放屁。。