返回信息流☆─────────────────────────────────────☆
qiumiao (qiumiao) 于 (Wed May 18 20:29:17 2011) 提到:
一个面试题,在其他条件一样的情况下。
各位大牛,这题应该怎么回答好一些。
☆─────────────────────────────────────☆
wks (cloverprince) 于 (Wed May 18 21:37:24 2011) 提到:
看如何定义效率了。用一星期写一个只用1秒钟执行一遍的程序不算“效率高”。
☆─────────────────────────────────────☆
qiumiao (qiumiao) 于 (Wed May 18 21:52:42 2011) 提到:
【 在 wks 的大作中提到: 】
: 看如何定义效率了。用一星期写一个只用1秒钟执行一遍的程序不算“效率高”。
: --
指的是执行效率,不是开发效率
☆─────────────────────────────────────☆
doubleKO (九头鸟龙) 于 (Wed May 18 22:16:07 2011) 提到:
zz
最初可以想到JVM
c++并不保证一定效率高于java
就像汇编语言也不保证效率高过c一样
但他们都提供了一种效率更高的机会,首先要你水平够高,才能写出效率更高的程序,否则,即使你用了c++/c甚至汇编,也可能生成的是低效率程序。
其次,对于c++还要看你用的编译器写的水平高低,看你编译时用了什么样优化。
简单一句什么语言执行效率高,简直就是误导。
再说,开发时用什么语言,考虑得远不是执行效率高一个因素,大多数情况下,执行效率是排在很后面的一个不重要因素。
还应该考虑应用场景吧,如c++也可以开发web应用,java也可以开发操作系统,但。。。
【 在 qiumiao (qiumiao) 的大作中提到: 】
: 一个面试题,在其他条件一样的情况下。
: 各位大牛,这题应该怎么回答好一些。
☆─────────────────────────────────────☆
rebirthatsix (茫犭者-算法盲) 于 (Wed May 18 22:18:04 2011) 提到:
按照代码加壳的理论。。。解释执行的虚拟机代码效率是要比编译完就是x86 asm的c++要低,不过这用到java和c++上未必行得通,不能忽视jvm本身的优化
☆─────────────────────────────────────☆
wks (cloverprince) 于 (Wed May 18 22:20:16 2011) 提到:
传说JVM会优化程序,让某些程序比C还快。
但是不总是这样。
以上。
☆─────────────────────────────────────☆
zzcc (Binux <足兆叉虫>) 于 (Wed May 18 23:24:35 2011) 提到:
比如一个极端的python的例子(印象)
a.py
================
def add(a):
return a+a
b.py
================
from a import add
for i in range(10000):
add(i)
要比
a.cpp
================
int add(int a) {
return a+a;
}
b.cpp
================
for (int i=0; i<10000; i++) {
add(i);
}
效率要高。
原因是C不会跨文件内联优化。
可以作为优化后能够比C快的一例。
除非极端情况下,程序员的因素要比语言对速度影响要大。我是这么认为的
【 在 wks 的大作中提到: 】
: 传说JVM会优化程序,让某些程序比C还快。
: 但是不总是这样。
: 以上。
: ...................
☆─────────────────────────────────────☆
digiter (rush) 于 (Thu May 19 00:27:34 2011) 提到:
论运行效率,大体上Java比C++要慢些,当然某些情况下Java比C++快也是有不少例子的
小程序C++速度几乎完胜Java,像ACM题这种代码量的比较明显
但是工程项目就不一定了,因为很多项目都不是CPU密集型运算,而且我觉得C++只有用好的情况下才快,用不好也慢
另外从云风那儿得来这么个观点,用什么语言决定了你的思考方式,比如用C的时候你会特别关注运行效率,而用Java时可能更关注设计模式等等
☆─────────────────────────────────────☆
coolfantasy (Cool) 于 (Thu May 19 07:54:05 2011) 提到:
球带
【 在 rebirthatsix 的大作中提到: 】
: 按照代码加壳的理论。。。解释执行的虚拟机代码效率是要比编译完就是x86 asm的c++要低,不过这用到java和c++上未必行得通,不能忽视jvm本身的优化
☆─────────────────────────────────────☆
wakaka007 (我是谁) 于 (Thu May 19 08:04:49 2011) 提到:
100分
【 在 doubleKO 的大作中提到: 】
: zz
: 最初可以想到JVM
: c++并不保证一定效率高于java
: ...................
☆─────────────────────────────────────☆
zxsword (小绝) 于 (Thu May 19 08:27:25 2011) 提到:
楼上好多大牛哇
☆─────────────────────────────────────☆
liyus (IanLee) 于 (Thu May 19 08:31:28 2011) 提到:
都好流弊
☆─────────────────────────────────────☆
ylzsm2008 (夕辉) 于 (Thu May 19 08:50:55 2011) 提到:
学习了
☆─────────────────────────────────────☆
xinguohenan (小水) 于 (Thu May 19 08:52:35 2011) 提到:
拜一下各位大牛
☆─────────────────────────────────────☆
zhangxuemeng (zhangxuemeng) 于 (Thu May 19 08:53:19 2011) 提到:
大牛
☆─────────────────────────────────────☆
yola (折原玛雅) 于 (Thu May 19 08:57:57 2011) 提到:
崇拜本楼所有大牛
搞了java2年却啥也不懂的飘过
☆─────────────────────────────────────☆
icicle (凌次方) 于 (Thu May 19 09:05:55 2011) 提到:
进来学习
☆─────────────────────────────────────☆
YinZhiPing (龙骑士尹志平) 于 (Thu May 19 09:08:39 2011) 提到:
奥卡姆剃刀
c++就是比java快,有什么好说的
☆─────────────────────────────────────☆
piao325 (随风) 于 (Thu May 19 09:12:13 2011) 提到:
各种牛人 拜一拜
☆─────────────────────────────────────☆
obsessed (章华) 于 (Thu May 19 09:18:46 2011) 提到:
拜
☆─────────────────────────────────────☆
ttkl (crown&&满城) 于 (Thu May 19 09:39:41 2011) 提到:
这个,主要还是看人
☆─────────────────────────────────────☆
buptlong (楚|火属性的小龙|八卦帮之山火贲) 于 (Thu May 19 09:44:05 2011) 提到:
一般认为,C++要比Java快一点
【 在 qiumiao (qiumiao) 的大作中提到: 】
: 一个面试题,在其他条件一样的情况下。
: 各位大牛,这题应该怎么回答好一些。
☆─────────────────────────────────────☆
shenlei (我爱果子|[路]|天山南北|潇湘隐士) 于 (Thu May 19 09:59:37 2011) 提到:
内牛满面...
☆─────────────────────────────────────☆
xixigugu (熙熙姑姑) 于 (Thu May 19 10:02:00 2011) 提到:
进来学习的
☆─────────────────────────────────────☆
jbm3072 (老鼠舞棒槌 | 珍爱生命 远离编程) 于 (Thu May 19 10:06:17 2011) 提到:
赞啊.十大贴.
☆─────────────────────────────────────☆
qiumiao (qiumiao) 于 (Thu May 19 10:09:18 2011) 提到:
【 在 rebirthatsix 的大作中提到: 】
: 按照代码加壳的理论。。。解释执行的虚拟机代码效率是要比编译完就是x86 asm的c++要低,不过这用到java和c++上未必行得通,不能忽视jvm本身的优化
: --
那jvm本身会做哪些优化呢?
☆─────────────────────────────────────☆
buptlong (楚|火属性的小龙|八卦帮之山火贲) 于 (Thu May 19 10:09:50 2011) 提到:
以“eratosthense”筛子算法查找素数为例(这个算法是目前测试编译程序性能的一种流行标准),计算2-200万之间所有的素数
在1。66G双核IBM Thinkpad机器上,2G内存,OS是Ubuntu 7.04
C++(g++ 4.1.2):360ms
java(java SE 6):105ms
公平的说,如果有人改变c++优化器的级别,C++将以60ms的时间战胜java
以上转自《CORE JAVA》
怎么说呢,C++和java哪个快,呵呵,It's a question
【 在 buptlong (楚|火属性的小龙|八卦帮之山火贲) 的大作中提到: 】
: 一般认为,C++要比Java快一点
☆─────────────────────────────────────☆
w41q (追寻内心的平和) 于 (Thu May 19 10:12:04 2011) 提到:
进来学习
☆─────────────────────────────────────☆
rebirthatsix (茫犭者-算法盲) 于 (Thu May 19 10:13:16 2011) 提到:
我艹。。。求带。。
【 在 coolfantasy 的大作中提到: 】
: 球带
: 【 在 rebirthatsix 的大作中提到: 】
: : 按照代码加壳的理论。。。解释执行的虚拟机代码效率是要比编译完就是x86 asm的c++要低,不过这用到java和c++上未必行得通,不能忽视jvm本身的优化
: ...................
☆─────────────────────────────────────☆
sjgenius (牧云风行) 于 (Thu May 19 10:24:04 2011) 提到:
c++
☆─────────────────────────────────────☆
solon (游侠) 于 (Thu May 19 10:33:22 2011) 提到:
拜ls各位大牛
☆─────────────────────────────────────☆
karon1988 (七夜の雪) 于 (Thu May 19 10:47:21 2011) 提到:
我是来拜大牛的。。
☆─────────────────────────────────────☆
tzjz89 (天之骄子) 于 (Thu May 19 10:51:03 2011) 提到:
我看过一本书上说在做正则表达式时,算法一致,java的运行时间是C的几倍吧,好像是6、7倍。
我觉得大多数情况C++是效率比较好的。不能谈不同的人,现在比的是语言,和人没有关系,都用同样的算法,大多数情况下java就是慢一些。
而且java的完全面向对象语言的特性也有一些开销。
比如在类中,java为了实现动态联编,函数(或方法)内部实现机制都虚函数,而C++是自己选择的,C++就是让需要虚函数得人自己用,不需要就不用占空间了。
☆─────────────────────────────────────☆
tsinlong (YNWA) 于 (Thu May 19 11:04:40 2011) 提到:
拜大牛
☆─────────────────────────────────────☆
josephbupt (爱乐年华) 于 (Thu May 19 11:23:45 2011) 提到:
要看你怎么写了,要是C中强制使用inline,不就可以高速了么
a.h
================
extern inline int add(int a);
a.inl
================
int add(int a) {
return a+a;
}
b.cpp
================
#include "a.h"
#include "a.inl"
for (int i=0; i<10000; i++) {
add(i);
}
【 在 zzcc 的大作中提到: 】
: 比如一个极端的python的例子(印象)
: a.py
: ================
: ...................
☆─────────────────────────────────────☆
lenevo (legend) 于 (Thu May 19 11:24:48 2011) 提到:
不错
☆─────────────────────────────────────☆
wangjia7 (fighter) 于 (Thu May 19 11:56:30 2011) 提到:
拜~
☆─────────────────────────────────────☆
ultrajj (羽然) 于 (Thu May 19 12:52:05 2011) 提到:
同拜大牛
☆─────────────────────────────────────☆
fishlovely (fishlovely) 于 (Thu May 19 13:13:53 2011) 提到:
【 在 qiumiao 的大作中提到: 】
: 一个面试题,在其他条件一样的情况下。
: 各位大牛,这题应该怎么回答好一些。
: --
: ...................
java是在JVM环境下编译后执行的,通过JVM执行字节码的效率一般情况下比解释型的执行效率要高。但是具体情况具体对待,不能一概而论~~~~~
☆─────────────────────────────────────☆
qingyi310 (青衣) 于 (Thu May 19 13:33:50 2011) 提到:
这算是标准的答案了.拜大牛~
【 在 doubleKO 的大作中提到: 】
: zz
: 最初可以想到JVM
: c++并不保证一定效率高于java
: ...................
☆─────────────────────────────────────☆
lw176493876 (【意涵团】小文子) 于 (Thu May 19 14:04:12 2011) 提到:
球带,都是大牛哇
☆─────────────────────────────────────☆
ChildCry (能进能退乃真正法器) 于 (Thu May 19 14:16:09 2011) 提到:
占座学习
☆─────────────────────────────────────☆
AirJay (【BYR★KOBE迷】★六灵寺★彩云之男★) 于 (Thu May 19 14:27:44 2011) 提到:
进来学习
☆─────────────────────────────────────☆
zhuzhubupt (zhuzhu) 于 (Thu May 19 14:33:51 2011) 提到:
学习
☆─────────────────────────────────────☆
shengzi () 于 (Thu May 19 14:45:36 2011) 提到:
肯定是C++
☆─────────────────────────────────────☆
Bluerainer (Blue) 于 (Thu May 19 15:00:21 2011) 提到:
貌似看到有书上说,java不一定慢
☆─────────────────────────────────────☆
Bluerainer (Blue) 于 (Thu May 19 15:03:42 2011) 提到:
“为什么厂家直销的产品比经过N级代理的产品要便宜??? ”
☆─────────────────────────────────────☆
jasondou (熟睡的土拨鼠) 于 (Thu May 19 15:22:42 2011) 提到:
c++本质上效率是比java高的。但是有些数据显示:java运行效率却比c++高,这并不是c++本身的问题,而是java本身实现机制做了很多优化,比如:内存池机制等等,这些的内在导致java比c++高。 所以:谁搞谁低真要看谁写,一个好的c++程序员完全可以自己实现类似内存池,从而在同等条件下:c++比java高多了。
☆─────────────────────────────────────☆
tjjszdxx (可乐佳佳) 于 (Thu May 19 15:33:27 2011) 提到:
理论上C++的效率要高一些,因为占用的资源少
☆─────────────────────────────────────☆
stfairy (大真似伪、大爱无疆的小楼主) 于 (Thu May 19 15:56:17 2011) 提到:
这个贴太虎了,北邮讲坛么。。
☆─────────────────────────────────────☆
mymz (好久不见) 于 (Thu May 19 16:50:51 2011) 提到:
xue xi
☆─────────────────────────────────────☆
OJ (却像有无数说话|可惜我听不懂) 于 (Thu May 19 20:39:27 2011) 提到:
我前天刚看过这段话
【 在 buptlong (楚|火属性的小龙|八卦帮之山火贲) 的大作中提到: 】
: 以“eratosthense”筛子算法查找素数为例(这个算法是目前测试编译程序性能的一种流行标准),计算2-200万之间所有的素数
: 在1。66G双核IBM Thinkpad机器上,2G内存,OS是Ubuntu 7.04
: C++(g++ 4.1.2):360ms
: ...................
☆─────────────────────────────────────☆
czcs321 (IcyCoke) 于 (Thu May 19 20:49:10 2011) 提到:
学习了。
☆─────────────────────────────────────☆
attackover (AttaCKovER) 于 (Thu May 19 21:01:25 2011) 提到:
会问出这种题的面试官,只能说明他水平还很不到家。
效率高是指高级语言的编码效率,即可编程性更高,还是代码的执行效率更高?
如果以面试官的水平来理解成执行效率的话,其实如果C++不使用指针,那JAVA与C++将有同等的效率,因为可以对于将两者使用相同的编译器中间表示进行表示,并且可以在其上实现相同的编译优化。
当然,加入JVM后,谁的效率更高,从壳的角度来讲,JVM需要解释,所以JVM效率低一些。但C++的指针会阻止很多优化,所以不好说。
最终结论,不好说。个人认为C++高一些,毕竟它灵活一些吧,至少写出高执行效率代码的机会多一些。
【 在 qiumiao 的大作中提到: 】
: 一个面试题,在其他条件一样的情况下。
: 各位大牛,这题应该怎么回答好一些。
: --
: ...................
☆─────────────────────────────────────☆
txmm (你被tx啦!) 于 (Thu May 19 21:14:48 2011) 提到:
学习
☆─────────────────────────────────────☆
kaokao2011 (要给力) 于 (Thu May 19 22:05:07 2011) 提到:
围观大牛解释
☆─────────────────────────────────────☆
suntengxiao (KTY) 于 (Thu May 19 22:16:55 2011) 提到:
啊
☆─────────────────────────────────────☆
fentoyal (长风长歌) 于 (Thu May 19 22:50:30 2011) 提到:
大家都在讨论的C艹 是什么啊?
这是一条镜像帖。来源:北邮人论坛 / cpp / #52592同步于 2011/5/20
CPP机器人发帖
[合集] C++和Java哪个效率会高些?为什么?
shenlei
2011/5/20镜像同步0 回复
订阅后,新回复会通过你的通知中心匿名送达。
0 条回复
暂无回复 · 你可以订阅本帖等待新回复。