From f6f44edcc03f3ccba1f132a8d691e3c499536a19 Mon Sep 17 00:00:00 2001 From: Olivier Combe Date: Mon, 21 May 2018 20:50:29 +0200 Subject: [PATCH] docs: update ivy perf notes (#24035) PR Close #24035 --- packages/core/src/render3/PERF_NOTES.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/packages/core/src/render3/PERF_NOTES.md b/packages/core/src/render3/PERF_NOTES.md index d031899025..9a75641e00 100644 --- a/packages/core/src/render3/PERF_NOTES.md +++ b/packages/core/src/render3/PERF_NOTES.md @@ -64,3 +64,10 @@ for (var i = 0, keys = Object.keys(obj); i < keys.length; i++) { const key = keys[i]; } ``` + +## Recursive functions +Avoid recursive functions when possible because they cannot be inlined. + +## Loops +Don't use foreach, it can cause megamorphic function calls (depending on the browser) and function allocations. +It is [a lot slower than regular `for` loops](https://jsperf.com/for-vs-foreach-misko)