Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 对象分解与分配(性能)_Javascript_Performance_Object_Processing Efficiency_Memory Efficient - Fatal编程技术网

Javascript 对象分解与分配(性能)

Javascript 对象分解与分配(性能),javascript,performance,object,processing-efficiency,memory-efficient,Javascript,Performance,Object,Processing Efficiency,Memory Efficient,我在考虑对象分解与分配的性能。我做了一个简单的测试: const ITERATIONS = 999999; const simpleObj = { a: 1, b: 2, c: 3 }; const newSimpleObj = { d: 4 }; const s1 = new Date().getTime(); for (let i = 0; i < ITERATIONS; ++i) { const n = Object.assign({}, simpleObj, newS

我在考虑对象分解与分配的性能。我做了一个简单的测试:

const ITERATIONS = 999999;

const simpleObj = { a: 1, b: 2, c: 3 };
const newSimpleObj = { d: 4 };


const s1 = new Date().getTime();
for (let i = 0; i < ITERATIONS; ++i) {
    const n = Object.assign({}, simpleObj, newSimpleObj);
}
console.log('End1:', new Date().getTime() - s1);


const s2 = new Date().getTime();
for (let i = 0; i < ITERATIONS; ++i) {
    const n = { ...simpleObj, ...newSimpleObj };
}
console.log('End2:', new Date().getTime() - s2);
const迭代次数=999999;
常量simpleObj={a:1,b:2,c:3};
const newSimpleObj={d:4};
const s1=新日期().getTime();
for(设i=0;i
我做对了吗?在本测试中,End1显示172ms,End2显示138ms。它非常简单,我认为在更复杂的函数中,它可能会产生更大的差异。我找不到任何带有基准测试或语句的文章,可以证明使用destructuring over assign方法有好处。这个解决方案还有其他的优点或缺点,比如内存效率、代码质量或类似的优点或缺点吗

更新:
我试过了,结果表明
分配
速度更快,但对象分解的优势几乎达到了45%。

你可以看到FireFox上的一个测试:


在这个测试中,
assign
won.

我想你的意思是解构(de-structure),而不是实际销毁对象?如果你真的是指从内存中删除对象(销毁),那么js中从内存中删除对象是通过垃圾收集进行的,你无法真正预测解释器何时会进行垃圾收集。是的,当然我在考虑解构,但是我的字典帮我完成了这项工作。Sorry很有趣,我试过了,结果表明
assign
速度更快,但显示了对象解构的几乎45%的优势。