考虑允许像这样嵌套函数的 Python 或 JavaScript 等语言:
print(vector(a * b),(a * c),(b * c)))
或者像这样扁平化:
i = (a * b)
j = (a * c)
k = (b * c)
V = vector(i,j,k)
print(V)
不同的格式对性能有多大影响?是否可以进行有效的概括,或者它是否因语言而异?
我希望优化编译器能够为两者进行内联并输出大致相同的机器代码。那么也许这只是解释性语言的问题?
最佳答案
与内联存在的相同代码或将函数视为内联的编译相比,任何函数调用都会添加少量机器指令,包括更多参数的机器指令。
但是,这是非常少的机器指令。因此,在大多数情况下,您可以通过选择和实现更高效的算法,轻松地将任何非平凡大小的输入恢复原状。
如果您真的处于性能的前沿(很可能您没有,除非您正在处理设备驱动程序)那么您可以开始内联函数或切换到汇编。
但无论如何,先编写尽可能清晰的代码,然后在开始担心性能之前进行测量。通过这样做,您将拥有更少的错误,从而有更多时间来优化正确工作的代码。
编辑:如果您指的是匿名函数之类的东西,它们会导致性能下降,但一如既往,先测量,再优化。
关于javascript - 嵌套会影响效率吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3337861/