gpt4 book ai didi

JavaScript 内部函数和性能

转载 作者:数据小太阳 更新时间:2023-10-29 06:03:31 24 4
gpt4 key购买 nike

定义 clousre 函数与全局范围函数对运行时和内存有何影响?

function a(){
//functions (option A)
}
//functions(option B)

我知道选项 A 具有功能作用域(闭包)的优势...

假设我有 1000 个函数,这对运行时间和内存有何影响?

最佳答案

如果您使用内部函数,运行时必须为将来的任何调用分配和保存它们的上下文,并且每次调用包含它们的函数时都会发生这种情况。因此,很容易想象声明一个内部函数就像构造一个对象一样,其成员只是该函数周围封闭范围内的变量。

如果您不经常这样做,这可能并没有那么糟糕,因为内存量与在堆上分配对象大致相同; (在某些情况下,您可以进行一些巧妙的优化来避免这种情况,例如,如果您只将函数传递到调用堆栈中,您可以在本地堆栈空间中分配,或者进行一些内联​​等)。然而,在大多数情况下它仍然是一个分配,因此您应该避免在繁忙的循环中使用太多它们或创建许多内部函数。

因此,要回答您的问题,选项 B 通常会更快。但是不要因此而气馁!

我的最终看法是,内部函数提供的便利性完全超过了小的运行时开销,我会说在方便的地方使用它们。如果结果证明是性能瓶颈,请返回并优化它们。

关于JavaScript 内部函数和性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6476540/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com