在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 class="indent">
|
测试结果:
buf: 1530.438ms
array: 95160.060ms
arraySet: 118384.376ms
<p class="indent">
|
Stop using Arrays with bytes, use Buffers