【讨论】实现同样的功能,c++程序会比c程序执行速度慢多少?

fenex 2003-03-25 05:18:54
如题
...全文
249 9 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhenxizhou 2003-03-25
  • 打赏
  • 举报
回复
封装得越厉害,效率越低
chengdulang 2003-03-25
  • 打赏
  • 举报
回复
据高手说问这样问题的人(就是我这种哈)写的程序几乎感觉不出差别。因为太短了哈。呵呵呵,据给我说的高手说他们写的程序大约要慢10%-20%,但是我看到任天堂为他的gba推荐的程序开发语言里没看到c++。据说是太慢。看来在有些领域c++还是不能代替c哈。看到这里想对那些说c没用的兄弟看看。嘿嘿。c还是有用吧。不要以为你们的c++了不起。还是有比不了c的时候。我坚决的学习c 。
warmworm 2003-03-25
  • 打赏
  • 举报
回复
如果只用C和C++相同的部分来说,应该没有多大的区别
但如果用到对象的继承尤其是虚函数和虚继承,差别就大了
这个在Inside C++ model里有说明
fiveyes 2003-03-25
  • 打赏
  • 举报
回复
有本书叫做《程序设计实践》,作者叫做Brian W.Kernighan和Rob Pike,我看的是中译本,译者叫做裘宗燕。

书中的第3章“设计与实现”,在一个具体问题下,分别使用一些计算机语言的某个速度比较快的编译器编译测试了一下运行速度。不过,作者并未对各种编译器生成的代码的性能作任何评价,我想这是因为,各种计算机语言有各自的应用领域,很难作出公平的评价,或者说,只要评价就不是公平的。所以书中只是为了得到一个具体的数据,针对一个具体的程序进行了一下比较:

产生随机的可以读的英语文本。

测试结果如下:
下面的表格是生成10000个输出词所用的秒数。用的机器一台是250MHz的MIPS R10000,运行Irix 6.4系统,另一台是400MHz的Pentium II,带有128M内存,运行Windows NT系统。

250MHz 400MHz 源代码行数
R100000 PentiumII
--------------------------------------------------------------
C 0.36 sec 0.30 sec 150
Java 4.9 9.2 105
C++/STL/deque 2.6 11.2 70
C++/STL/list 1.7 1.5 70
Awk 2.2 2.1 20
Perl 1.8 1.0 18

作者认为“Windows的STL deque版本肯定存在什么问题。......STL作为C++的一个新部分,仍然受到不成熟实现的损害。在使用STL的不同实现或使用不同数据结构时,导致的性能变化是不可预测的。Java也存在这个问题, 那里的实现也变得很快。”
cnunion 2003-03-25
  • 打赏
  • 举报
回复
这个主要是与编译器有关,因为你的程序在编译时是由编译器加整理和天家代码的啊!
complexity 2003-03-25
  • 打赏
  • 举报
回复
用同一个编译器,不会有性能差异

trackant 2003-03-25
  • 打赏
  • 举报
回复
有非正式报告称一般情况下c++的执行效率与c相差不会超过10%,而且通常情况下要比10%小的多。其实没有哪个机构去严格测试c++和c的效率差距,这是很模糊的问题,主要还是看代码了。
熊主任 2003-03-25
  • 打赏
  • 举报
回复
按thinking in C++上的说法是10%左右。
whwjn 2003-03-25
  • 打赏
  • 举报
回复
要具体看你的代码还要看编译器

70,020

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧