姑且认为题主问的是执行效率吧
表面上看,是C的执行效率要高,C简单直接,没有C++那些复杂的特性,编译生成的汇编代码都直接对应每行C代码,没有C++编译器插入的奇怪的东西,比如 隐式类型转换,虚函数调用,算符重载,拷贝构造等。
但是看问题不能这么表面,新手们容易认为性能问题是选择造成,只要我选择了正确的语言、框架函数、算法自然就有好的性能,实际上好的性能只能是靠Profiling工具压榨出来的。
性能瓶颈之所以叫瓶颈,就是因为只是极少数的地方有性能问题,不可能是整个代码到处都是瓶颈,上Profiling工具通常可以把性能问题定位到少数几个函数和数据结构。
解决性能问题靠猜测是很没效率的,即使你碰巧猜对了也很难证明。
如果是Windows,上VTune,哪里是瓶颈一目了然,甚至给你定位到具体是哪行汇编码。
如果是iOS,上instruments,是哪个函数的问题一目了然。
再回到C和C++的性能问题吧,我用C++可以提高开发效率,节省下来的时间可以用来做Profiling,那么最后谁的执行效率高还真不好说呢。
抛开开发实践,空谈语言的效率是毫无意义的。作者:姚冬
链接:https://www.zhihu.com/question/19779887/answer/36362835
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。