use*_*048 5 javascript performance inlining
我有以下函数,它将 3 个元素从一个类似数组的对象复制到另一个:
function copy(a, b) {
a[0] = b[0];
a[1] = b[1];
a[2] = b[2];
return a;
}
Run Code Online (Sandbox Code Playgroud)
该函数每帧被调用数万次。
几乎所有对它的调用都来自我的代码中的一个位置。
如果我在该单个位置手动内联它,以便直接在调用者中完成这些集合,我的代码会变得明显更快,这意味着引擎不会内联它。
有什么方法可以确保 JS 引擎内联它吗?这显然是一个热门函数。是否有任何奇怪的注释,或者反之亦然的某些代码模式不允许引擎内联函数?
我有许多类似的函数来处理向量和矩阵,因此在整个地方开始手动内联将非常麻烦且难看。