Executei uma série de benchmarks na minha máquina com as seguintes especificações:
- WSL 2 Ubuntu 22.04.2 LTS
- AMD Ryzen 7 5700x 4.6Ghz, 8 núcleos
- RAM 16gb 3200Mhz CL18
Utilizei uma suíte de testes fornecida pelo @kht, que incluiu os seguintes casos de teste:
var Benchmark = require('benchmark');
var suite = new Benchmark.Suite;
suite
.add('desestruturação', function () {
const n = 1000;
let a = 0, b = 1;
for (let i = 0; i < n; i++) {
[a, b] = [b, a + b];
}
})
.add('sem desestruturação', function () {
const n = 1000;
let a = 0, b = 1;
for (let i = 0; i < n; i++) {
let tmp = a;
a = b;
b += tmp;
}
})
.add('desestruturação BigInt', function () {
const n = 1000000n;
let a = 0n, b = 1n;
for (let i = 0n; i < n; i++) {
[a, b] = [b, a + b];
}
})
.add('sem desestruturação BigInt', function () {
const n = 1000000n;
let a = 0n, b = 1n;
for (let i = 0n; i < n; i++) {
let tmp = a;
a = b;
b += tmp;
}
})
.on('complete', function () {
console.log('Fastest is ' + this.filter('fastest').map('name'));
})
.on('cycle', function (event) {
console.log(String(event.target));
})
.run({
'async': true
});
Os resultados obtidos foram os seguintes:
Teste | Node | Bun |
---|---|---|
desestruturação | 1.350.540 | 884.238 |
sem desestruturação | 1.392.095 | 1.662.632 |
desestruturação BigInt | 0.16 | 0.10 |
sem desestruturação BigInt | 0.16 | 0.10 |