Tune in to the tools and techniques in the Elm ecosystem.
037: Performance in Elm
August 16, 2021
1:08:16
65.57 MB
Downloads: 0
elm-review-performance
- Tail call optimizations
- Jeroen's blog post on Tail-call optimization in Elm
- Evan Czaplicki's chapter on Tail-Call Optimization and how to write optimized code
- Lighthouse Elm Radio episode
- Ju Liu's Performant Elm blog post series
- Avoid memoized state when possible to avoid stale data
Html.Lazy
- Elm's html lazy only works when the function and args have the same reference as before.
List.map
will return a list with a new reference, for example. - Elm has function-level dead code elimination
- Referencing a record pulls the whole record in no matter how many fields are used directly
bcp-47-language-tag
package- Elm list extra gets split by function, unlike lodash which needs to be split
- Elm Core Dict package has O(logn) complexity for operations like insert
- JavaScript Objects aren't optimized for removing/adding properties
- "What's Up With Monomorphism"
elm-optimize-level-2
elm-explorations/benchmark
- Jeroen's list-extra PRs (with reference to the benchmark for it) for functions
gatherWith
isInfixOf
- webpagetest.org (or web.dev performance testing)
- Netlify Lighthouse plugin
- RSLint - fast version of ESLint, but doesn't have custom rules
- Instructions to minify Elm code
- Jake and Surma talk about optimizing sites - Setting up a static render in 30 minutes
- Jake Archibald's talk explaining JavaScript's event loop and requestAnimationFrame - In The Loop