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

在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');

测试结果:


buf: 1530.438ms
array: 95160.060ms
arraySet: 118384.376ms

Stop using Arrays with bytes, use Buffers