Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

125
Views
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
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!