8

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

 2 years ago
source link: https://dev.to/nijeesh4all/why-two-small-for-loops-run-faster-than-a-big-one-49pn
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
Nijeesh Joshy

Posted on Aug 27, 2019

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

Explain Like I am five Why does two small for loops run faster than one big for loop?

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


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

Especially for language like JS which is not multi-threaded

Discussion (6)

pic

Collapse

Expand

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

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

Comment button Reply

Collapse

Expand

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

Comment button Reply

Collapse

Expand

Collapse

Expand

i ran this in my server for more than 800 times these are my results pastebin.com/bRqku0zJ

Comment button Reply


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK