操作员比功能快
Are operators faster than functions?
在搜索new
和malloc
的差异时,我遇到了此语句(源(:
新的比malloc((快,因为操作员总是比函数快。
操作员总是比函数快吗?如果是这样,为什么?我真的很喜欢低级解释(您可以假设基本的编译器,SASS和硬件知识(。
新的比malloc((快,因为操作员总是比函数快。
这是完全不真实的。实际上,新表达式的默认行为是内部调用 malloc
的典型情况,在这种情况下,它不能更快。
,只要有竞争的程序做同样的事情,就没有理由期望使用彼此使用的性能不同。使用new
而不是malloc
的原因与性能无关。
运算符比功能快吗?
在运行时调用功能可能比调用函数慢。
但是,正如我们发现的那样,操作员实际上可以在内部调用功能。此外,抽象计算机的功能调用并不一定意味着在运行时将调用函数。只要编译器能够在编译时产生函数的结果,或者如果能够扩展呼叫内联,则无需任何函数呼叫呼叫开销。
因此,这取决于我们正在讨论的功能。就C 函数调用而言:它不一定比使用操作员慢。
另外,请注意,在类类型上操作的所有重载运算符实际上是对操作员过载函数的函数调用。
相关文章:
- 在执行其他功能的同时播放动画(LED矩阵和Arduino/ESP8266)
- 需要帮助操作员过载,这样我才能显示功能
- 操作员<<如何使用机械手功能
- 操作员比功能快
- 带有成员(操作员[])功能的Indoke_Result
- 当直接分配时,为什么此功能指针分配起作用,而不是与有条件的操作员一起使用
- 在C 中的功能模板中使用过载的操作员
- 如何使用Sfinae为容器创建模板功能,并根据操作员推断返回类型
- 任何操作员,功能调用和构造函数的通用持续时间表
- 如果功能超载,则BOOST PHOENIX成员功能操作员无法编译
- 为什么COUT在朋友函数中不起作用,该功能超载了操作员&lt;&lt;这是一个iStream运算符
- 操作员过载功能
- 在C 中使用功能作为操作员过载
- C++过载+操作员友情功能
- 如何使用此独特的操作员重载功能
- 过载操作员功能失败
- 与操作员'<<'不匹配 有人可以帮助解决无效功能错误吗?[C++]
- 没有操作员发现升压read_xml功能错误
- 操作员重新分配功能/结构返回什么
- 使用操作员<<的记录功能