gpt4 book ai didi

javascript:通过循环内联加速 10 倍?

转载 作者:IT王子 更新时间:2023-10-28 23:29:34 25 4
gpt4 key购买 nike

我遇到了性能问题,我的内部 javascript 行为异常火狐 (13.0.1)。最新的 Chrome 显示相同的行为。

当我执行我的 javascript 代码时,它看起来像下面的代码片段,结果很慢。但是,如果我简单地内联'j' 上的外循环。对于我的示例应用程序,这意味着我简单地分别写两次'j = 0'和'j = 1'的固定值,因为'm'等于2。当然,我不想要'm'被硬编码,所以我问自己究竟是什么导致了这种减速使用真正的循环?

有人有想法吗?

我在网络 worker 中运行代码。奇怪的是,如果我在主 javascript 上下文中执行相同的内联,而不是在工作人员的上下文中执行内联,则不会出现内联的积极影响。尽管如此,只为一个 'j' 值执行循环内容在所有情况下都会带来巨大的加速帮助。这是否也与内存管理有关?

提前非常感谢!

//m: very small, 1-2
for (j = 0; j < m; ++j) {
var attrib = attributes[j];

//n: very large, ~3*10^6 elements
for (i = 0; i < n; ++i) {

var data = largeBuffer[i];

//nc: very small, 2-3
for (c = 0; c < nc; ++c) {
var component;
//compute 'component
//..
attrib.typedArray[baseIdx + c] |= component;
}

baseIdx += nc;
}
}

最佳答案

这只是一个假设。我不太了解JS解释器的内部结构。

也许当您内联外循环时,解释器会看到 4 次相同的代码,从而触发 JIT。相反,当您使用常规循环时,JIT 只能看到一次代码。

再一次,这只是一个假设。

关于javascript:通过循环内联加速 10 倍?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11503757/

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