目前已公认JAVA在PC机上比C++ 慢20倍, 请问J2em在PDA上面会比PDA的专用开发工具慢多少呢?(20分)

  • 主题发起人 主题发起人 chy578
  • 开始时间 开始时间
目前已公认JAVA在PC机上比C++ 慢20倍
公认? 我怎么不知道?你这个20是那儿来得?在何种情况下,执行何种基准测试程序
得出的结果?请给一个证据。
 
老大这事你都不知道? 要是JAVA 和C++ 一样快的话, Bill就可以下课了.
这是我在书上看到的, 我想也有它的理由.但是一般的应用程序是看不出来的.
如果你用P4 的话, 那就不用说了, 肯定感觉不出来..
 
既然你用了这么耸人听闻的标题,就请你给一个具体的证据出来。光是用“Bill就可以下课了”
这样的言辞无法证明。
“这是我在书上看到的, 我想也有它的理由”
我不相信哪本书会表达这种不负责任的言论。
欢迎你问关于j2me的问题,但是请不要在你的题目上加上不客观的评价。
谢谢。
请阅读本论坛公告:
提问的智慧 (How To Ask Questions The Smart Way) ---希望大家都能看看
http://www.delphibbs.com/delphibbs/dispq.asp?lid=1018713
 
老兄,是j2me不是j2em,
 
是夸张了些,差一倍就已经是很大的不同了,20倍??,那就没人用java了
 
我发现说也没用了, 只有这样了, 我来写两个程序一个用C++ 一个用JAVA ,
在各位的电脑上跑一下就知道了..... 争个屁实践一下啥都有了,
请说说,要用什么算法写,才比较公正.....
 
老兄,我不是和你争具体的数值。我只是提醒你,做事情要be professional.
要尽量认真的做。
对于你原来问的问题,我来试着回答一下。在专门支持j2me的机器上,你基本不需要考虑性能
问题。我有个朋友在motorola开发过A6288,这台机器拥有两个Dragon Ball VZ (33MHz)的处理器,
其中一个专门就是用来跑j2me的。在这样的环境下,你编写j2me程序是不需要考虑性能的。
j2me的性能是和硬件相关性非常大的。所以你的问题没有一定的回答,你必须要实际接触某一个
产品,才能做出判断。这就和你没有办法比较C++和java的效率一样。在server端,编写优良的
java程序可以达到C++程序效率的1/3.而在用户界面端,也要看你使用何种类库编写,比如说swing和
awt很慢,但是ibm新的SWT是直接映射windows api的,你又能说他慢到哪儿去呢?
 
33MHz 马马呼呼了
 
正好做过些 J2ME。主要是在 Palm 上跑 Sun 的 CLDC,以及 MIDP,
可以实现 TCP、UDP 通讯、XML 处理、数据库、以及菜单、按钮等各种 UI。
程序比 C++ 做的慢些,但是关键看设计了编译系统的选用。
设计是指您不能指望 PDA 能象笔记本来用,因为它本身的 CPU、内存很弱,所以
在功能设计上要恰当、程序设计上要很精细,甚至要考虑到字节为单位。
编译系统方面,Sun 的程序只是对其 J2ME 一系列标准的演示(reference implementation)
正真商用的系统,可以直接把 Java 编译成 PDA 的二进制可执行代码,与 C++ 没有什么区别。
IBM 的 SWT 在 desktop 上令人大开眼界,其实 IBM 在此以前,已经在 Palm 上玩过这一手了
其 J9 就是把 Java 直接映射到 PDA 的 API。
 
很久以前的确听老师说过,Java比 C慢20倍,但是现在情况已经好转了,差距没有那么大。
而且Java不仅仅是个语言,而是扩展出了一整套东西,它是一个平台,是一个系统,据说还有Java专用的芯片,也不知道到底出来了没有?
还有,对于你来,计算机在0.05秒内计算完 与 0.1秒内算完,又有什么区别呢?
我在看Jsp时,书上说Jsp 计算 20000*20000 的循环 与 Asp 2000*2000所需时间差不多。
我第一反应是:固然说明jsp性能优越,可是又有多少实践机会让你用这种循环呢?
所以这个优势在一般情况下,可以忽略不计。
C与Java的速度优势,道理也一样。诚如您所说,用各种算法的运行速度评估的结果不一样,说不定有的算法Java上运行更快[^]。
再有,技术还是从属于市场的,当年如果仅看技术的话,OS2明显比windows更胜一筹,可是结果呢?
如果是OS2获胜的话,整个90年代的计算机行业的历史将被重大改写!!你看微软从此以后定了多少标准???
学了这么多年计算机,我只摸过一次Unix,一直在windows底下混。
技术被市场打败的例子数不胜数,请您仔细观察一下。
就像战争一样,由各种因素综合决定:领导人的能力、决心、情报、民心、武器装备、士气、战术素养、敌人的各种情况等等。
技术只有赢得市场才能赢得无限大的优势,单纯追求技术没有任何的意义。希望您能明白。
最后希望您能够认真看一下马克思主义哲学,看懂了就能解释所有的现象,而不容易被各种假象所迷惑。
注意,是哲学,而不是政治经济学,不是科学共产主义。后两本,可以作为一种流派提高一下您的知识素养。
 
>>做事情要be professional.
说的简直Perfect !
我也要努力[^]
 
又在这里争论语言的好坏了。学还没学就考虑这些。
很多人张口就说JAVA慢,但是到底是不是真的很慢,他自己也不知道,甚至他连JAVA是啥样子的
都不知道,就跟着人家喊慢。我们公司就有不少这样的家伙。:(
如果你是专业JAVA人士,你就应该知道JAVA不慢,而且在很大程度上还可以很大地优化速度。
如果有人张口就对你说:JAVA很慢。 不用问,这个人肯定没见过JAVA。
 
JSP比ASP快太多,两者都是解释执行,以此来比较JAVA和原生代码的速度是不对的,因为最花
时间的语法分析JSP只做一次,而ASP得实时进行。
现在的技术发展速度非常快。所谓JAVA比C++慢20倍的说法早已丢入历史了。
如果你打算自己做实验,一定要考虑到一点:
运行时速度与启动时速度的区别。
为了安全的理由每次JAVA程序启动时得对class文件进行一系列的验证。这个极耗时间。真正
进入运行后会自适应最优化,即把20%最耗时的操作编译为最优化的原生机器代码。当然你也
可以配置为运行时全部编译为最优化原生代码。
这种方式对于服务器端应用来说速度几乎可以与C++相提并论,当然你得保证内存的充裕。因
为服务器端应用要求7/24运行。几乎100%的时间都是运行时速度。被最优化为原生机器代码
因此说和C++速度相去不远是有道理的。
但对于需要图形用户界面的客户端应用,极容易让人把启动时的缓慢误解为运行速度的缓慢
没有办法。
其他,同意曹晓刚大虾。
to:曹晓刚,
久仰大名,盼能耳提面命于小弟,以后请多多指教,oskiller感激不尽。
 
>>又在这里争论语言的好坏了。
我没说。不要诬陷好人[^][^][^]
 
这样下去偏题了。
这个问题,还是yysun回答得最好,因为他实际接触过,其它大部分人(包括我在内)
都只是道听途说。
我上面所说“不需要考虑性能”是有欠考虑的错误说法。
to oskiller:
别客气~
 
以我的经验看来, Java的特点大部分体现在企业应用。
现在的虚拟机使用Hotspot, 如果大家使用过Hotspot Server的话, 应该会有这么个体会:服务反应速度并不比C++版本的服务器慢。
大家觉得Java速度慢, 基本上有两个因素:
1. 使用Hotspot Client的JIT, 因为它是即时编译, 编译当然需要时间嘛^_^.
2. 应该是通病, 启动速度太慢了(说实话, 要是大型服务系统, C/C++也好不到哪里去。)
大家发现没有, Java 写的程序相当地稳定, 到现在为止我没有发现有“内存不可读”那样的系统错误,这是它的虚拟机内部机制问题我就不说了。
稳定的程序, 正好适合企业7*24运转, 一个良好的服务系统可能启动时间很慢(需要各项检查啊), 但是启动后的服务能力不比任何语言编写的程序差。
这可能是它抄袭UNIX的特点吧^0^
 
我只是想知道JAVA在PDA上面的速度如何,没想到引来那么多是是非非。
  对大多数应用程序而言,速度的问题绝对不是最重要的,更多的是开发周期,稳定性,
维护性,语言的应用泛围,语言的标准,背后的厂商支持,等等太多太多。
  我看在现在流行的几种语主中 语言本身没有优劣,只是人的水平有高低。
 
后退
顶部