闭包的复杂性是否会影响创建它的性能成本



假设我有以下React钩子:

export const useSomeState = (someProps: {}) => {
return React.useState(() => {
// Some really complex function with lots of code
})
}

因为我们使用React.useState的函数处理程序,所以该状态应该只初始化一次。。没关系。。。

如果这个钩子被用作频繁重新渲染的较大组件的一部分,这会影响性能吗?或者我需要使用React.useCallback之类的吗?

JS创建和重新创建一个永远不会运行的闭包(在每次重新渲染时(的性能成本是多少?

闭包的复杂性(捕获并放入堆中的变量数量(会影响性能成本吗?

我对重新创建多个闭包的第一个担忧不是速度成本,而是内存成本。在1个变量和10个变量上创建闭包之间没有什么区别,但这确实需要少量的堆分配。大量的小堆分配可能会使内存碎片化,需要更多的垃圾收集运行,这确实会在奇怪和不可预测的时候影响性能。

如果你的闭包在每个动画帧上都被重新创建,那么是的,你可能应该改进代码。如果它只是在主内容中的某个页面的重新呈现上,那么你可能很好。

最新更新