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

Bun 11x mais rápido que o Node 🤯

O que é o Bun?

Bun, é um novo runtime para JavaScript e TypeScript desenvolvido com a linguagem Zig. Seu principal objetivo é melhorar a experiência do desenvolvedor removendo a necessidade bundling / transpiling e aumentando a performance.

Será mesmo que é tão rápido?

Para verificarmos, vamos usar um problema de exemplo e executá-los com Node e depois com o Bun.

O problema

Somar uma sequência de números no intervalo [0, N - 1), em que N será um número inteiro definido pelo usuário.

Criando a implementação

sum.js

// Necessário para obter valores passados para o script via terminal
import process from "process";

// Valor default caso nenhum outro seja passado
const DEFAULT_ITERATIONS = 100_000_000;

const getLastCommandLineArgument = () => process.argv.at(-1);

const getIterationsCount = () => {
  const userIterations = getLastCommandLineArgument();
  const iterations = +userIterations || DEFAULT_ITERATIONS;
  return iterations;
};

// Constrói um array [0, 1, 2, ..., N - 1]
const makeSequenceArray = (iterations) =>
  Array.from({ length: iterations }, (_, index) => index);

const sum = (values) =>
  values.reduce((accumulator, value) => accumulator + value);

const sequence = makeSequenceArray(getIterationsCount());

const addedSequence = sum(sequence);

console.log("Sum:", addedSequence);

Como executar

Muito simples, basta passar um número para o script pelo terminal:

node sum.js 1000
bun run sum.js 1000

Ou podemos ainda usar o valor default de 100 mil apenas omitindo o valor na linha de comando

node sum.js
bun run sum.js

Medindo a performance

Para medir a performance podemos utilizar o comando time dos sistemas linux. Esse comando indica o tempo e a quantidade de processamento gasta por algum processamento.

$ time node sum.js
Sum: 4999999950000000
node sum.js  8,92s user 0,56s system 100% cpu 9,447 total
$ time bun run sum.js
Sum: 4999999950000000
bun run sum.js  0,54s user 0,28s system 102% cpu 0,805 total

Apurando o resultado

Como pudemos ver, o tempo total gasto para o Node foi de 9,447 enquanto que o do Bun foi de 0,805. Isso é 11,74 vezes mais rápido! 🤯

Conclusão

Apesar de ainda ser um projeto em construção, o Bun chegou para ser um concorrente de peso do Node (e do Deno? 🤔). Vale a pena acompanhar a evolução do projeto, pois ele promete!

Carregando publicação patrocinada...
1