Hacker News new | past | comments | ask | show | jobs | submit login
Ask HN: Why is Array.from so slow?
5 points by cfv on Nov 27, 2019 | hide | past | favorite | 2 comments
I made this benchmark here: https://jsperf.com/ways-to-get-a-random-string

And I lack the formal knowledge to understand why the Array.from version is about 25% as fast as the while loop version, being that they intuitively should do something similar.

Can you please help me understand?




Array.from makes an extra function call each iteration and function calls are very expensive in interpreted languages. Compilers or interpreters sometimes optimizes it away, but in this case it didn't.

Remember this: Compiler optimizations are very unreliable, small innocuous changes in code can get huge effects on performance.

Edit: Just looked at the code in the link, and Array.from is not the only difference, the other code uses string concatenation instead of array concatenation. Appending to a string in Javascript is typically a lot faster than appending to an array.


> Appending to a string in Javascript is typically a lot faster than appending to an array.

The same is true in C# if I recall correctly. Not sure if that’s still the case




Join us for AI Startup School this June 16-17 in San Francisco!

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: