t*****n 发帖数: 4908 | 1 【 以下文字转载自 PDA 讨论区 】
发信人: vtechusa (影子与回旋), 信区: PDA
标 题: java就是andriod慢的原因,为什么总有人要争呢?
发信站: BBS 未名空间站 (Mon Nov 19 00:03:57 2012, 美东)
随意查了几个网站的benchmarks,结果大相径庭,有的java比c还快,你信啊?在仔细
看看程序,简单几行,java里连几个类啊对象都没有,这种比较有意义?更何况实际使
用的时候还不时的给你gc一下。根据实际经验,fortran, c++, c, java里面毫无疑问c
++/c速度最快啊,java在复杂一点的系统里会慢很多。
看这篇paper
https://days2011.scala-lang.org/sites/days2011/files/ws3-1-Hundt.pdf |
b*******s 发帖数: 5216 | 2 java要是快,高频交易系统就用java而不是c++写了,c++很重要的特性是编译期多态,
这个兼顾了设计灵活和运行时效率 |
h****r 发帖数: 2056 | 3 我算服了,下面那个link里那种语言比较性的东西也值得发篇文章?
对程序员来说那就是个常识。没别的事可做吗?
问c
【在 t*****n 的大作中提到】 : 【 以下文字转载自 PDA 讨论区 】 : 发信人: vtechusa (影子与回旋), 信区: PDA : 标 题: java就是andriod慢的原因,为什么总有人要争呢? : 发信站: BBS 未名空间站 (Mon Nov 19 00:03:57 2012, 美东) : 随意查了几个网站的benchmarks,结果大相径庭,有的java比c还快,你信啊?在仔细 : 看看程序,简单几行,java里连几个类啊对象都没有,这种比较有意义?更何况实际使 : 用的时候还不时的给你gc一下。根据实际经验,fortran, c++, c, java里面毫无疑问c : ++/c速度最快啊,java在复杂一点的系统里会慢很多。 : 看这篇paper : https://days2011.scala-lang.org/sites/days2011/files/ws3-1-Hundt.pdf
|
g*****g 发帖数: 34805 | 4 Java比C/C++没人争。但谁说Android慢了?各大主流评测网站都说很流畅。
买个$100刀的prepaid,还装一堆垃圾软件,那当然慢了。 |
m*******l 发帖数: 12782 | 5 fortran最快
问c
【在 t*****n 的大作中提到】 : 【 以下文字转载自 PDA 讨论区 】 : 发信人: vtechusa (影子与回旋), 信区: PDA : 标 题: java就是andriod慢的原因,为什么总有人要争呢? : 发信站: BBS 未名空间站 (Mon Nov 19 00:03:57 2012, 美东) : 随意查了几个网站的benchmarks,结果大相径庭,有的java比c还快,你信啊?在仔细 : 看看程序,简单几行,java里连几个类啊对象都没有,这种比较有意义?更何况实际使 : 用的时候还不时的给你gc一下。根据实际经验,fortran, c++, c, java里面毫无疑问c : ++/c速度最快啊,java在复杂一点的系统里会慢很多。 : 看这篇paper : https://days2011.scala-lang.org/sites/days2011/files/ws3-1-Hundt.pdf
|
m*******l 发帖数: 12782 | 6 板凳
【在 g*****g 的大作中提到】 : Java比C/C++没人争。但谁说Android慢了?各大主流评测网站都说很流畅。 : 买个$100刀的prepaid,还装一堆垃圾软件,那当然慢了。
|
N***m 发帖数: 4460 | 7 都什么年代了,还纠结快慢啥的
问c
【在 t*****n 的大作中提到】 : 【 以下文字转载自 PDA 讨论区 】 : 发信人: vtechusa (影子与回旋), 信区: PDA : 标 题: java就是andriod慢的原因,为什么总有人要争呢? : 发信站: BBS 未名空间站 (Mon Nov 19 00:03:57 2012, 美东) : 随意查了几个网站的benchmarks,结果大相径庭,有的java比c还快,你信啊?在仔细 : 看看程序,简单几行,java里连几个类啊对象都没有,这种比较有意义?更何况实际使 : 用的时候还不时的给你gc一下。根据实际经验,fortran, c++, c, java里面毫无疑问c : ++/c速度最快啊,java在复杂一点的系统里会慢很多。 : 看这篇paper : https://days2011.scala-lang.org/sites/days2011/files/ws3-1-Hundt.pdf
|
r*******n 发帖数: 3020 | 8 现在手机pad竞争白热化,看谁的用户体验好,速度还是很关键的因素。
【在 N***m 的大作中提到】 : 都什么年代了,还纠结快慢啥的 : : 问c
|
w***u 发帖数: 17713 | 9 慢的后面是不是意味着耗电也多?屁大点事情绕几个弯才实现。 |
t*****n 发帖数: 4908 | 10 汇编最快。fortran已经被历史遗忘了。。。。
【在 m*******l 的大作中提到】 : fortran最快 : : 问c
|
|
|
D****r 发帖数: 309 | 11 This is an obvious fact, since java is not not a (deeply enough) compiled
language and easily be decoded, as mention @wiki, java is " Java is
translated to a form that is intended to be interpreted", so more close to
be called a "interpreted language".
C/C++ programs are impossible to be decompiled into Assembly level, which
tells how close the code to machine/chips, where it is to be interpreted and
executed.
That is a efficiency/speed of execution.
In a word, java is focus on understandable, compatible and cross-platform, C
is focus on execution. |
d***q 发帖数: 1119 | |
r*******n 发帖数: 3020 | 13 你这个 not not是什么意思
and
C
【在 D****r 的大作中提到】 : This is an obvious fact, since java is not not a (deeply enough) compiled : language and easily be decoded, as mention @wiki, java is " Java is : translated to a form that is intended to be interpreted", so more close to : be called a "interpreted language". : C/C++ programs are impossible to be decompiled into Assembly level, which : tells how close the code to machine/chips, where it is to be interpreted and : executed. : That is a efficiency/speed of execution. : In a word, java is focus on understandable, compatible and cross-platform, C : is focus on execution.
|
c*****a 发帖数: 808 | |
D****r 发帖数: 309 | 15 Sorry for the typo.( I mean java is not a (deeply enough) compiled
language ...)
In fact, I would compare java/js/php/cgi/perl/python/shell script for high
speed execution. That would make sense.
In so far, if also include SQL vs. various DB access speed would be much
more useful.
【在 r*******n 的大作中提到】 : 你这个 not not是什么意思 : : and : C
|
r*******n 发帖数: 3020 | 16 但从语言来说,我认为java是compiled language.
执行是JVM解释执行。
【在 D****r 的大作中提到】 : Sorry for the typo.( I mean java is not a (deeply enough) compiled : language ...) : In fact, I would compare java/js/php/cgi/perl/python/shell script for high : speed execution. That would make sense. : In so far, if also include SQL vs. various DB access speed would be much : more useful.
|
c***r 发帖数: 4631 | |
g*****g 发帖数: 34805 | 18 It's a compiled language with JIT. In average it's 50%-100% slower than C/C+
+.
http://shootout.alioth.debian.org/ has
C++ 1.21
C 1.33
java 1.93
for benchmarks.
Most scripting languages, PHP/PERL/Python etc. are one magnitude order
slower. That's big difference.
【在 r*******n 的大作中提到】 : 但从语言来说,我认为java是compiled language. : 执行是JVM解释执行。
|
D****r 发帖数: 309 | 19 thanks for the linked comparison.
very interesting to find that php is faster than perl/python and js8 is
faster than all of them. Those are all script languages. shell script has
not in test, but I think could be even faster.
One question still what is exactly the php code? in shell script or in perl
or in c++ code?
C+
【在 g*****g 的大作中提到】 : It's a compiled language with JIT. In average it's 50%-100% slower than C/C+ : +. : http://shootout.alioth.debian.org/ has : C++ 1.21 : C 1.33 : java 1.93 : for benchmarks. : Most scripting languages, PHP/PERL/Python etc. are one magnitude order : slower. That's big difference.
|
d*****l 发帖数: 300 | 20 其实java跟android一毛钱关系都没有,所以android快慢跟java也毫无关系。
android只是借用了JAVA的API来做开发,就象GWT也用JAVA做开发,开
发出来的东西跟JAVA也没有一毛钱的关系一样。 |
|
|
l*******b 发帖数: 2586 | 21 ???? 愿闻其详
【在 d*****l 的大作中提到】 : 其实java跟android一毛钱关系都没有,所以android快慢跟java也毫无关系。 : android只是借用了JAVA的API来做开发,就象GWT也用JAVA做开发,开 : 发出来的东西跟JAVA也没有一毛钱的关系一样。
|
t*****n 发帖数: 4908 | 22 测简单的程序没什么用。什么时候商用数值分析软件,特别是有限元和有限差分软件,
用java写了,才有说服力。
java老老实实在服务器端泡泡就行了,用不着到处显摆吧。
C+
【在 g*****g 的大作中提到】 : It's a compiled language with JIT. In average it's 50%-100% slower than C/C+ : +. : http://shootout.alioth.debian.org/ has : C++ 1.21 : C 1.33 : java 1.93 : for benchmarks. : Most scripting languages, PHP/PERL/Python etc. are one magnitude order : slower. That's big difference.
|
d*****l 发帖数: 300 | 23 android 只是用JAVA语言及API来做开发,因为会JAVA的人实在太多了。而android上并
没有JVM,android应用也不是以java bytecode安装到android
上的,而是dek executable,由一个叫dAlvik的VM执行,DALVIK与JVM完全
两码事,与JAVA完全无关,根本不同的架构。android也只实现了部分的JAVA
API,如进程,线程,IO,网络,UTIL等。ORACL与GOOGLE打了
几年的官司,一根毛都没捞着,法官说API不受产权保护,也没有专利。
ORACLE看着android风生水起,只能干吹胡子瞎瞪眼。
【在 l*******b 的大作中提到】 : ???? 愿闻其详
|
g*****g 发帖数: 34805 | 24 Android实现了AWT/Swing以外所有JDK5的API,本来就是从Apache Harmony拿过来的。
不同的JDK实现一直就有,比如IBM的J9,BEA的JRockit。商业上说, Android不能叫
Java因为没有得到Oracle的授权。但对JVM之上的应用开发者是一样的,唯一的区别是
不同的UI类库。
【在 d*****l 的大作中提到】 : android 只是用JAVA语言及API来做开发,因为会JAVA的人实在太多了。而android上并 : 没有JVM,android应用也不是以java bytecode安装到android : 上的,而是dek executable,由一个叫dAlvik的VM执行,DALVIK与JVM完全 : 两码事,与JAVA完全无关,根本不同的架构。android也只实现了部分的JAVA : API,如进程,线程,IO,网络,UTIL等。ORACL与GOOGLE打了 : 几年的官司,一根毛都没捞着,法官说API不受产权保护,也没有专利。 : ORACLE看着android风生水起,只能干吹胡子瞎瞪眼。
|
d****i 发帖数: 4809 | 25 这个数据好像不对,根据我们在嵌入式实时操作系统的测试,C比C++快一点点,大概85
-90%的差别,当然还有code不同导致的因素。这个网站的测试好像也给出相似结果:
C: 1.01
C++: 1.28
不过我们用的C/C++ compiler不是gcc, 是芯片生产商自己提供的。
C+
【在 g*****g 的大作中提到】 : It's a compiled language with JIT. In average it's 50%-100% slower than C/C+ : +. : http://shootout.alioth.debian.org/ has : C++ 1.21 : C 1.33 : java 1.93 : for benchmarks. : Most scripting languages, PHP/PERL/Python etc. are one magnitude order : slower. That's big difference.
|
c*********e 发帖数: 16335 | 26 android的编程模式是非常时尚的,把数据存储在xml文件里,和.java文件分开。编译
时创建一个r文件。
【在 d*****l 的大作中提到】 : 其实java跟android一毛钱关系都没有,所以android快慢跟java也毫无关系。 : android只是借用了JAVA的API来做开发,就象GWT也用JAVA做开发,开 : 发出来的东西跟JAVA也没有一毛钱的关系一样。
|
t***t 发帖数: 6066 | 27 这个法官太扯蛋。烂苹果长方形圆角都能专利,API为毛不能?技术含量大多了吧?
【在 d*****l 的大作中提到】 : android 只是用JAVA语言及API来做开发,因为会JAVA的人实在太多了。而android上并 : 没有JVM,android应用也不是以java bytecode安装到android : 上的,而是dek executable,由一个叫dAlvik的VM执行,DALVIK与JVM完全 : 两码事,与JAVA完全无关,根本不同的架构。android也只实现了部分的JAVA : API,如进程,线程,IO,网络,UTIL等。ORACL与GOOGLE打了 : 几年的官司,一根毛都没捞着,法官说API不受产权保护,也没有专利。 : ORACLE看着android风生水起,只能干吹胡子瞎瞪眼。
|
n******t 发帖数: 4406 | 28 不知道你再说什么。Android 用了java的api. 而且也跑虚拟机。这不算Java的实现就
有鬼了。
【在 d*****l 的大作中提到】 : 其实java跟android一毛钱关系都没有,所以android快慢跟java也毫无关系。 : android只是借用了JAVA的API来做开发,就象GWT也用JAVA做开发,开 : 发出来的东西跟JAVA也没有一毛钱的关系一样。
|
c*********e 发帖数: 16335 | 29 看来google要开发个语言,就叫F#
F已经有了,只好加个#
【在 n******t 的大作中提到】 : 不知道你再说什么。Android 用了java的api. 而且也跑虚拟机。这不算Java的实现就 : 有鬼了。
|
d**********x 发帖数: 4083 | 30 人家不是有Go嘛。。。
现就
【在 c*********e 的大作中提到】 : 看来google要开发个语言,就叫F# : F已经有了,只好加个#
|
|
|
m*******l 发帖数: 12782 | 31 F# is Microsoft's Functional language
【在 c*********e 的大作中提到】 : 看来google要开发个语言,就叫F# : F已经有了,只好加个#
|
x****u 发帖数: 44466 | 32 差别很大,Android只是用了Java的语法,不过Java的语法问题也不少,和Objective C
比算是硬伤。
【在 n******t 的大作中提到】 : 不知道你再说什么。Android 用了java的api. 而且也跑虚拟机。这不算Java的实现就 : 有鬼了。
|
d****i 发帖数: 4809 | 33 展开说说,和Objective C比怎么硬伤了?
C
【在 x****u 的大作中提到】 : 差别很大,Android只是用了Java的语法,不过Java的语法问题也不少,和Objective C : 比算是硬伤。
|
x****u 发帖数: 44466 | 34 Java语法上高度依赖并且滥用GC,而实际上大多数场合使用引用计数足够。Objective
C完全支持GC但在移动设备上默认是不开的。
【在 d****i 的大作中提到】 : 展开说说,和Objective C比怎么硬伤了? : : C
|
y*******g 发帖数: 6599 | 35 理论上是不需要的。。除了manifest.xml
【在 c*********e 的大作中提到】 : android的编程模式是非常时尚的,把数据存储在xml文件里,和.java文件分开。编译 : 时创建一个r文件。
|
m********5 发帖数: 17667 | 36 We do have a name for it:
Guava
【在 c*********e 的大作中提到】 : 看来google要开发个语言,就叫F# : F已经有了,只好加个#
|
t***t 发帖数: 6066 | 37 叫外F吧,简称WF。
【在 c*********e 的大作中提到】 : 看来google要开发个语言,就叫F# : F已经有了,只好加个#
|
s****0 发帖数: 117 | 38 说什么呢。那是google的库,相当于collections的扩展。
【在 m********5 的大作中提到】 : We do have a name for it: : Guava
|
W*******e 发帖数: 1268 | 39 “Java语法上高度依赖并且滥用GC”- Gosling为移动设备设计Java语言的一个基本点
就是避免编程调用GC,你见过谁写Java程序要高度依赖和滥用GC吗?
现在的软件工程没有任何语言比Java更能保证代码的可靠性和可重用性,特别是Web系
统的开发。和C比较在performance上的一些tradeoff是非常值得的。现在很多项目中,
不能有效扩展和重用的代码都是不长久的。
Objective
【在 x****u 的大作中提到】 : Java语法上高度依赖并且滥用GC,而实际上大多数场合使用引用计数足够。Objective : C完全支持GC但在移动设备上默认是不开的。
|
x****u 发帖数: 44466 | 40 说的就是后台依赖GC影响效率了。
【在 W*******e 的大作中提到】 : “Java语法上高度依赖并且滥用GC”- Gosling为移动设备设计Java语言的一个基本点 : 就是避免编程调用GC,你见过谁写Java程序要高度依赖和滥用GC吗? : 现在的软件工程没有任何语言比Java更能保证代码的可靠性和可重用性,特别是Web系 : 统的开发。和C比较在performance上的一些tradeoff是非常值得的。现在很多项目中, : 不能有效扩展和重用的代码都是不长久的。 : : Objective
|
|
|
g*****g 发帖数: 34805 | 41 从4.0起,主流的安卓手机没有流畅的问题。4.1之后更是如此。什么java GC影响效率
是扯谈。
【在 x****u 的大作中提到】 : 说的就是后台依赖GC影响效率了。
|
x****u 发帖数: 44466 | 42 搞一个Nexus 7玩玩?
【在 g*****g 的大作中提到】 : 从4.0起,主流的安卓手机没有流畅的问题。4.1之后更是如此。什么java GC影响效率 : 是扯谈。
|
g*****g 发帖数: 34805 | 43 你找个n7不流畅的review我看看先?
【在 x****u 的大作中提到】 : 搞一个Nexus 7玩玩?
|
x****u 发帖数: 44466 | 44 n7流畅度和iPad2差不多,有轻微停顿感。当然N7远比iPad2快了。
【在 g*****g 的大作中提到】 : 你找个n7不流畅的review我看看先?
|
y*******g 发帖数: 6599 | 45 3.0之前google不知道抽什么风,除了video和明确调用opengl外,其他的 drawing都是
纯software rendering 所以慢,
后来google io上自己说 tablet屏幕大像素多,software rendering不够快所以要改
【在 g*****g 的大作中提到】 : 从4.0起,主流的安卓手机没有流畅的问题。4.1之后更是如此。什么java GC影响效率 : 是扯谈。
|
W*******e 发帖数: 1268 | 46 GC一直是研究的热点,现在有很多算法和很多产品。听说过Sun Java RTS或者IBM
WebSphere RT吗?GC在这两个JVM里面几乎可以无pause time的实时运行。
现在的GC效率非常高,1.4的CMS,7推出G1,都不是CPU Intensive。另外还考虑到了数
据吞吐量。C语言做GC的算法性能也只能到这一步。相比之下,Java在JVM中运行才是速
度比C慢的主要因素。
【在 x****u 的大作中提到】 : 说的就是后台依赖GC影响效率了。
|
x****u 发帖数: 44466 | 47 jvm早都本地编译了。。。
【在 W*******e 的大作中提到】 : GC一直是研究的热点,现在有很多算法和很多产品。听说过Sun Java RTS或者IBM : WebSphere RT吗?GC在这两个JVM里面几乎可以无pause time的实时运行。 : 现在的GC效率非常高,1.4的CMS,7推出G1,都不是CPU Intensive。另外还考虑到了数 : 据吞吐量。C语言做GC的算法性能也只能到这一步。相比之下,Java在JVM中运行才是速 : 度比C慢的主要因素。
|
W*******e 发帖数: 1268 | 48 JIT是runtime在JVM中动态完成的。C程序的一个简单循环翻译成机器吗大概6个指令左
右。Java的一个简单循环翻译成byte code,再变成机器码,即使优化后估计也会比C的
多一些。虚拟机系统出来的程序有些tradeoff是可以理解的吧。
【在 x****u 的大作中提到】 : jvm早都本地编译了。。。
|