新的Float32Array耗时异常的原因是什么?

时间:2020-10-09 11:23:48

标签: javascript arrays webpack

let arr = []

for(let i = 0; i < 11308608; i++){

arr.push(Math.random() * 1000)

}

console.time('load')

a = new Float32Array(arr)

console.timeEnd('load')

打开一个新的空白页,打开控制台,然后执行此代码,通常在几十毫秒内,不超过100ms。

但是,它通常用于1500毫秒以上的项目中。

之所以找到这个,是因为该项目需要加载更多3D资源。在优化性能时,我发现静态页面演示中的优化效果非常好,而在项目中使用时效果却很差。

基本上,在演示中需要10秒钟,而在项目中要超过30秒钟。

经过大量的努力,我们在three.module.js:40591中找到了以下代码:

const typedArray = new TYPED_ARRAYS[ attribute.type ]( attribute.array );

这是写入数组时的耗时异常。

在尝试删除VUE,删除所有依赖项并仅留下空白页之后,上述测试代码的控制台执行仍然无效。

在构建项目中,删除所有JS文件,以避免耗时的异常。

在React项目上执行此代码也会导致耗时的异常。

根据初步判断,它是webpack,但尚无法解决。

0 个答案:

没有答案