Executando verificação de segurança...
5

Só de curiosidade, refiz esses testes usando o Benchmark.js. Só adicionei mais um caso, de Fibonacci sem BigInt, pois vi que deu diferença. Segue o código:

var Benchmark = require('benchmark');
var suite = new Benchmark.Suite;

suite
.add('Fibonacci BigInt', function () {
    const n = 1000000n;
    let a = BigInt(0), b = BigInt(1);
    for (let i = BigInt(0); i < n; i++) {
      [a, b] = [b, a + b];
    }
})
.add('Fibonacci sem BigInt', function () {
    // tive que diminuir n para não estourar o valor máximo de Number
    const n = 1000;
    let a = 0, b = 1;
    for (let i = 0; i < n; i++) {
      [a, b] = [b, a + b];
    }
})
.add('console.log no loop', function () {
    const n = 1000000;
    for (let i = BigInt(0); i < n; i++) {
        console.log("Item: " + i);
    }
})
.add('Alocação de memória', function () {
    const n = 1000;
    for (let i = 0; i < n; i++) {
        let arr = new Array(100000).fill(0);
    }
})
.add('Manipulação de strings', function () {
    let result = "";
    const baseString = "abcdefghijklmnopqrstuvwxyz";
    const n = 100000;
    for (let i = 0; i < n; i++) {
        result += baseString;
    }
})
.add('Manipulação de arrays', function () {
    const n = 100000;
    let arr = [];
    for (let i = 0; i < n; i++) {
        arr.push(i);
    }
    for (let i = 0; i < n; i++) {
        let item = arr[i];
    }
    for (let i = 0; i < n; i++) {
        arr.pop();
    }
})
.add('Operações matemáticas', function () {
    let result = 0;
    const n = 1000000;
    for (let i = 1; i <= n; i++) {
        result += i;
        result -= i;
        result *= i;
        result /= i;
    }
})
.on('cycle', function (event) {
    console.log(String(event.target));
})
.run({
    'async': true
});

Os resultados estão abaixo (os valores são de operações por segundo, ou seja, quanto mais, melhor).

Linux (Ubuntu 22.04.3, processador 11th Gen Intel® Core™ i5-1145G7 2.60GHz, 8 núcleos):

TesteNodeBun
Fibonacci BigInt0,070,07
Fibonacci sem BigInt2241543507428 (sim, mais de 3 milhões)
console.log no loop0,140,31
Alocação de memória2,512,54
Manipulação de strings22601024
Manipulação de arrays6491882
Operações matemáticas198222

Mac (2012, processador 2.6 GHz Quad-Core Intel Core i7):

TesteNodeBun
Fibonacci BigInt0,120,03
Fibonacci sem BigInt1364821547414
console.log no loop0,080,18
Alocação de memória1,492,7
Manipulação de strings14831033
Manipulação de arrays4531374
Operações matemáticas122118

Ou seja, o Node em geral se sai pior no console.log dentro de um loop (pelos motivos já citados em vários comentários). O cálculo com BigInt faz muita diferença no Mac (o Bun se sai pior), mas no Linux dá empate técnico. Em compensação, sem BigInt o Bun ganha por uma diferença enorme. E nas outras operações ora um, ora outro se sai melhor, com variados graus de vantagem.

Carregando publicação patrocinada...