Programming languages 为什么对于相同的功能,预定义的功能总是比用户定义的功能执行得更快?道歉,如果它太基本

Programming languages 为什么对于相同的功能,预定义的功能总是比用户定义的功能执行得更快?道歉,如果它太基本,programming-languages,user-defined-functions,Programming Languages,User Defined Functions,在每种编程语言中,为什么都是预定义的 函数的执行速度总是比用户定义的快 功能相同,但我们的代码时间复杂度最低 这是否与这两种类型的资源利用率差异有关 这是我的长期疑问。。我需要至少一个更好的答案。你所说的根本不是真的。声称在任何语言中,用户定义函数的性能都比内置函数差,这是一个非常大胆的说法,这是由使用分析获取的硬数据支持的 不过,我们更加脚踏实地,确实可能会不时在各种平台/lanugages/运行时/库等中观察到这种行为 这主要是由于以下两个原因: 内置函数有时被允许根本不是函数:如果代码的

在每种编程语言中,为什么都是预定义的

函数的执行速度总是比用户定义的快

功能相同,但我们的代码时间复杂度最低

这是否与这两种类型的资源利用率差异有关


这是我的长期疑问。。我需要至少一个更好的答案。

你所说的根本不是真的。声称在任何语言中,用户定义函数的性能都比内置函数差,这是一个非常大胆的说法,这是由使用分析获取的硬数据支持的

不过,我们更加脚踏实地,确实可能会不时在各种平台/lanugages/运行时/库等中观察到这种行为

这主要是由于以下两个原因:

  • 内置函数有时被允许根本不是函数:如果代码的行为没有改变,编译器可以自由地完全删除函数调用(并将其替换为其他类似于一组机器指令的调用)

    在C语言中,
    memcpy()
    系列中的函数就是一个很好的例子:在“release”版本中,一个适用于流行平台的好编译器通常用直接调用复制内存范围的CPU指令来代替这些情况

  • 内置函数通常在依赖于平台的汇编中进行编码,因此在适用的情况下,函数体将是为目标CPU的扩展指令集(如SSE及其在英特尔平台上的后续迭代)编写的经过微调的高度优化的低级代码

如果您的意思不是像C这样的低级语言,而是更高级的,针对虚拟机或解释的语言,那么答案应该更明显