免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 39767 | 回复: 4
打印 上一主题 下一主题

[C] C 和 C++ 的速度相差多少,你知道吗? [复制链接]

论坛徽章:
0
1 [报告]
发表于 2013-07-08 08:49 |显示全部楼层
哲学家式码农--凡事从哲学、道德和天理角度解释问题,却从不讨论技术的具体问题。

C++为什么比C慢,C#、Lua为啥比C慢

论坛徽章:
0
2 [报告]
发表于 2013-07-08 12:03 |显示全部楼层
回复 15# __BlueGuy__


任何一本好一点的教科书,都不会告诉你C比C++快。你可知道为什么?

你显然不知道

论坛徽章:
0
3 [报告]
发表于 2013-07-08 12:38 |显示全部楼层
回复 18# __BlueGuy__

你首先要看哪方面

C++唯一慢的地方就是多态,而C实现多态的代价一定比C++高,因为C++毕竟将多态所需的计算,在编译阶段消化掉了一些。

剩下的C++只可能比C快,因为C++是强类型语言,编译阶段有更多的约束条件让编译器生成优化的代码。此外,通过模板技术,也能够在编译阶段消化掉一些计算,也就是所谓的“元编程”。目前,矩阵计算库速度最快的应该是gotoblas和openblas,用汇编写的,其次是boost库的ublas和另外一个c++库eigen3,至于c和fortran实现的blas,性能排最后。

C++程序的加载速度确实可能要比C慢一点:一方面,C++的二进制代码会更大,另一方面,C++的符号表可能更大。磁盘IO和loader解析符号表,都可能让速度加载速度变慢。

C#,据说首次运行时后,会生成native代码,所以理论上C#程序只有第一次启动慢,启动后运行速度应该和C接近。由于native代码总是根据本机的CPU生成,也应该能够更有效的利用CPU特性,特别是SIMD指令。

论坛徽章:
0
4 [报告]
发表于 2013-07-09 08:13 |显示全部楼层
回复 27# __BlueGuy__


唉,程序都不一定写对的人,怎么可能做过性能优化。自己玩吧,不鸟你了

论坛徽章:
0
5 [报告]
发表于 2013-07-12 15:11 |显示全部楼层
回复 41# 方兆国


    总有一些2B Windows程序员,只相信双击鼠标的直觉,不相信量化的benchmark结果
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP