找回密码
 欢迎注册
楼主: gxqcn

[讨论] C 与 C++ 极限运行效率哪个高?

[复制链接]
发表于 2011-12-31 10:06:08 | 显示全部楼层
10# gxqcn
要追求极致,往往还是定制来得好

针对问题的条件的定制,针对运行机器的定制,甚至针对客户的定制,
我极力赞同。
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2012-1-5 08:30:10 | 显示全部楼层
据说是C快那么一点
用了类的C++必然比C慢
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2012-1-5 09:34:39 | 显示全部楼层
即使只看性能,用的好,C++也不会有额外的代价,而收益是巨大的:更加好的可读性
ICFF.zip (217.62 KB, 下载次数: 3)
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2012-1-5 09:36:41 | 显示全部楼层
C++比较复杂,编译器背后做了许多工作,发展至今,效率比较好。
所以很多人说,用C写同样的功能(比如说多态),要有比较高的技巧,但不见得做得比C++编译器更好。
我对此持保留态度。
但说实话,C++代码很自然,比如说可以重载运算符等,开发效率也比较高。
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2012-1-5 22:35:13 | 显示全部楼层
毕竟编译的时候有自动的优化
为了可读性等等,牺牲一点点时间还是值得的
而且,0x里加了右值引用,比以前爽多了
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2012-1-6 12:16:35 | 显示全部楼层
都错了,C 与 C++ 最后运行的都是机器码。
其实问题是人为写的半机器码通过C编译器产生的机器码还是C++编译器自动产生的机器码哪个运行效率高。太饶口了。比C更接近机器码的前面有汇编。
其实和各行业共通,顶尖的部分还是熟练的专业人员人工作品好,但成本高。机器产品成本低,质量会随技术进步不断提升。
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2012-1-6 21:07:53 | 显示全部楼层
C++比较复杂,编译器背后做了许多工作,发展至今,效率比较好。
所以很多人说,用C写同样的功能(比如说多态),要有比较高的技巧,但不见得做得比C++编译器更好。
我对此持保留态度。
但说实话,C++代码很自然, ...
gxqcn 发表于 2012-1-5 09:36

C++和C通常来说使用的编译器都是统一的,只是编译器前端有点区别。从这个角度来说,没有区别。只是C++某些特殊功能编译器处理起来可能比较麻烦,于是效率有可能会低一些。至于开发效率,自然C++要好一些
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2012-1-7 09:27:09 | 显示全部楼层
都错了,C 与 C++ 最后运行的都是机器码。
其实问题是人为写的半机器码通过C编译器产生的机器码还是C++编译器自动产生的机器码哪个运行效率高。太饶口了。比C更接近机器码的前面有汇编。
其实和各行业共通,顶尖的 ...
zeroieme 发表于 2012-1-6 12:16



求问,汇编指令和机器码有多大区别?不是直接转换的关系么?  {:3_55:}
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2012-1-7 12:04:46 | 显示全部楼层
http://zh.wikipedia.org/zh-cn/%E ... 6%E8%AF%AD%E8%A8%80
汇编语言的语句与机器语言(机器语言操作码)存在对应关系,但这并不意味着汇编语言语句与机器操作对应。在CISC(复杂指令集)结构CPU上,汇编语言可能被汇编器解译成多个“微指令”。因此有多少种CPU,甚至有多少单芯片,就有多少种汇编语言。
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2012-1-7 18:02:08 | 显示全部楼层
微指令对软件是不可见的。通常我们说的机器码就是指机器指令而不是微指令,同汇编没有区别。实际上C/C++编译器都是可以人工选择直接产生机器指令或汇编语言,因为两者等价
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
您需要登录后才可以回帖 登录 | 欢迎注册

本版积分规则

小黑屋|手机版|数学研发网 ( 苏ICP备07505100号 )

GMT+8, 2024-4-20 13:51 , Processed in 0.047674 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表