DEV Community

Discussion on: Why does two small for-loops run faster than a big one ?

Collapse
 
dati profile image
da-ti • Edited

This has nothing to do with JIT compiler, loops, multi-threading or BigInt. If this was a some quiz question it would test:
-Understating that every number in js implicitly is floating point number
-Knowing how floating point addition works and that (unlike addition of integers) it takes multiple hw level operations

Addition_and_subtraction

To make this test fair for both one loop variant and two loops variant:


s = Date.now()
for(let i=0;i<1e10;i++) { i + 100 }
for(let i=1e10;i<2e10;i++) { i + 100 }
console.log(Date.now() - s)


s = Date.now()
for(let i=0;i<2e10;i++) { i + 100 }
console.log(Date.now() - s)
Enter fullscreen mode Exit fullscreen mode

Now both variants work with exact same numbers and perform exact same floating point operations (time diff is consistently <20ms on my machine now, where it was 500-1500ms before)

TLDR: floating point

Collapse
 
nijeesh4all profile image
Nijeesh Joshy • Edited

Thanks man, it took me a while to understand. I think this might be the best answer.