Javascript使用Buffer替代字节数组会提升性能

16-06-29 banq
         

在Javascript中如果需要使用字节byte数组,直接使用Buffer会被使用byte数组性能更快。

以下是测试代码:

console.time('buf');  
for (let i = 0; i < 100000; i++) {  
    const buf = new Buffer(100000);
    buf.fill(0xf);
}
console.timeEnd('buf');

console.time('array');  
for (let i = 0; i < 100000; i++) {  
    const array = new Array(100000);
    array.fill(0xf);
}
console.timeEnd('array');

console.time('arraySet');  
for (let i = 0; i < 100000; i++) {  
    const array = [];
    for (let j = 0; j < 100000; j++) {
        array[j] = 0xf;
    }
}
console.timeEnd('arraySet');  
<p>

测试结果:

buf: 1530.438ms  
array: 95160.060ms  
arraySet: 118384.376ms  
<p>

Stop using Arrays with bytes, use Buffers