Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

117
Visualizações
Dividir cálculos largos de JS en pedazos: comportamiento extraño de Chrome

Estoy trabajando en una biblioteca JS que potencialmente puede realizar cálculos largos, congelando el hilo principal. Conozco Web Workers y también se usarán, pero me gustaría asegurarme de que el código también se pueda ejecutar en el subproceso principal sin bloquearlo.

Probé la siguiente solución para dividir cálculos largos en partes más pequeñas:

 const performLongComputations = () => { let sum = 0; for (let i = 0; i < 10_0000; ++i) { sum += Math.random(); } }; const synchronousExecution = () => { let totalTime = 0; for (let i = 0; i < 1_000; ++i) { const startTime = performance.now(); performLongComputations(); totalTime += performance.now() - startTime; } return totalTime; }; console.log(`Synchronous execution took ${synchronousExecution()} ms`); const asynchronousExecution = () => new Promise(resolve => { let totalTime = 0; let currentIteration = 0; const start = () => { const startTime = performance.now(); performLongComputations(); totalTime += performance.now() - startTime; if (currentIteration++ < 1_000) { setTimeout(start, 0); } else { resolve(totalTime); } }; start(); }); asynchronousExecution().then(time => console.log(`Asynchronous execution took ${time} ms`));

En Chrome, la salida es la siguiente:

 Synchronous execution took 837.0999999996275 ms Asynchronous execution took 2853.699999993667 ms

En Firefox:

 Synchronous execution took 9674 ms Asynchronous execution took 9203 ms

Probado en Linux, Chrome 92.0.4515.107, Firefox 90.0.

Hay dos cosas que me sorprenden:

  1. ¿Por qué tanta diferencia entre los tiempos de ejecución del código sincronizado y asíncrono en Chrome?
  2. ¿Por qué el código asíncrono suele ser más rápido en FF?
about 4 years ago · Juan Pablo Isaza
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda