C 与 C++ 谁的效率高,为什么?

本文探讨了C与C++在执行效率上的差异。表面上看C语言因更简洁而执行效率更高,但实际上通过使用性能分析工具如VTune或Instruments定位瓶颈才是提升效率的关键。文章强调好的性能主要取决于开发实践而非语言选择。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


姑且认为题主问的是执行效率吧
表面上看,是C的执行效率要高,C简单直接,没有C++那些复杂的特性,编译生成的汇编代码都直接对应每行C代码,没有C++编译器插入的奇怪的东西,比如 隐式类型转换,虚函数调用,算符重载,拷贝构造等。

但是看问题不能这么表面,新手们容易认为性能问题是选择造成,只要我选择了正确的语言、框架函数、算法自然就有好的性能,实际上好的性能只能是靠Profiling工具压榨出来的。
性能瓶颈之所以叫瓶颈,就是因为只是极少数的地方有性能问题,不可能是整个代码到处都是瓶颈,上Profiling工具通常可以把性能问题定位到少数几个函数和数据结构。

解决性能问题靠猜测是很没效率的,即使你碰巧猜对了也很难证明。

如果是Windows,上VTune,哪里是瓶颈一目了然,甚至给你定位到具体是哪行汇编码。
如果是iOS,上instruments,是哪个函数的问题一目了然。

再回到C和C++的性能问题吧,我用C++可以提高开发效率,节省下来的时间可以用来做Profiling,那么最后谁的执行效率高还真不好说呢。

抛开开发实践,空谈语言的效率是毫无意义的。


作者:姚冬
链接:https://www.zhihu.com/question/19779887/answer/36362835
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。








评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值