Javascript 新的Float32Array耗时异常的原因是什么? 让arr=[] 对于(设i=0;i

Javascript 新的Float32Array耗时异常的原因是什么? 让arr=[] 对于(设i=0;i,javascript,arrays,webpack,Javascript,Arrays,Webpack,打开一个新的空白页,打开控制台,然后执行此代码,通常在几十毫秒内,不超过100毫秒 但是,它通常用于1500ms以上的项目 我发现这一点的原因是项目需要加载更多的3D资源。在优化性能时,我发现静态页面演示中的优化效果非常好,而在项目中使用时效果非常差 基本上,在演示中需要10秒,但在项目中需要30秒以上 经过大量的努力,我们在three.module.js:40591中找到了这段代码: const typedArray=新类型的数组[attribute.type](attribute.array

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

但是,它通常用于1500ms以上的项目

我发现这一点的原因是项目需要加载更多的3D资源。在优化性能时,我发现静态页面演示中的优化效果非常好,而在项目中使用时效果非常差

基本上,在演示中需要10秒,但在项目中需要30秒以上

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

const typedArray=新类型的数组[attribute.type](attribute.array)

写入数组时,这是一个耗时的异常

在尝试删除VUE、删除所有依赖项并只留下一个空白页之后,上述测试代码的控制台执行仍然不会生效

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

在React项目上执行此代码还将导致耗时的异常


根据初步判断,这是webpack,但还无法解决。

您是否已将webpack配置为对类型化数组进行透明和加载多填充?我在core js中发现了类型数组的重写,是吗?如何处理它?是的,CoreJS是一个polyfill,如果它覆盖类型化数组构造函数,那么它的实现可能比本机的慢得多。那么a)为什么要加载核心js?这可能取决于babel的浏览器兼容性设置。b) 如果本机函数可用,为什么core js会覆盖它们?这可能是错误或配置问题。
let arr = []

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

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

}

console.time('load')

a = new Float32Array(arr)

console.timeEnd('load')