具有函数范围的声明函数的性能vs超出函数范围

问题描述 投票:3回答:2

我在考虑是否在函数作用域内还是在作用域外声明函数的性能影响。

为此,我使用jsperf创建了一个测试,结果对我来说很有趣,我希望有人能解释这里发生了什么。

测试:https://jsperf.com/saarman-fn-scope/1

Google Chrome搜索结果:chrome results

Microsoft Edge结果:edge results

Firefox结果:enter image description here

javascript performance function v8
2个回答
0
投票

要点:

如果引擎应用巧妙的优化,代码会更快。

边缘太慢了。

由于某种原因,Chrome在第一种情况下无法快速解决问题。也许优化只会以更多的迭代开始。

一个功能是否在另一个功能内并不重要²,正如Firefox在这种情况下所证明的。

顺便说一下,最佳的优化方法是:

是的,没什么,因为您的代码没有任何可观察到的效果。什么也不做可能真的很快]]

²:不是从性能的角度来看,而是从设计的角度来看[[does

很重要

0
投票
我相信Chrome和Firefox的情况是,它内联了mathAdd函数。因为它是一个简单的函数,没有在函数内创建和调用的副作用,所以编译器将调用站点替换为函数的内部代码。
© www.soinside.com 2019 - 2024. All rights reserved.