4 ms·
Why would they use forEach? Is that criteria that your code is more modern? Or by forEach you mean: "for (const entity of entities) {...}"?
by mvladic 4y ago
Why would they use forEach? Is that criteria that your code is more modern? Or by forEach you mean: "for (const entity of entities) {...}"?
- samwillis 4y agoforEach landed in Chrome in 2014 after this post, at the same time as for...of. True that forEach was available in some browsers earlier than that and could be polyfilled. Which do I mean? either.
- jsgamedevthrow 4y agoI have no idea what its like these days, but back then a ton of those sorts of methods would cause extra allocations (and thus unnecessary GC). That is the very last thing you want in a game engine.
- fein 4y agoYou are correct. Everything that isn't a native for loop (forEach, map, reduce, etc) is slower than a native for loop. https://leanylabs.com/blog/js-forEach-map-reduce-vs-for-for_of/ https://leanylabs.com/blog/js-forEach-map-reduce-vs-for-for_...
- dahart 4y agoLooks like it’s gotten better recently with ratios like 1.5x - 3x; it wasn’t that long ago that using the functional iterators was 10x slower than imperative loops. Still, I have a hard time choosing the functional iterators even the cases that are only 50% slower, and even though I prefer them for how clean and elegant it makes the code. Performance and energy use matters, especially in a physics engine. Defaulting to the slower style might not be visible initially, but is sapping cycles from every corner of the code.
- pharmakom 4y agoforEach mixes statements and expressions so (imho) is poor style.