This repository has been archived on 2023-03-18. You can view files and clone it, but cannot push or open issues or pull requests.
osr-discourse-src/app/assets/javascripts/discourse/tests/unit
David Taylor 135fdd59ed
PERF: Improve JS app boot speed by optimizing customResolve() (#14990)
Time spent in the 'find module with suffix' portion of our `customResolve` function were adding up to around 100ms-150ms when booting the app. This time is spread over 150+ calls, so it's not immediately obvious in flamegraphs.

This commit implements a (reversed) [Trie](https://en.wikipedia.org/wiki/Trie) which enables fast suffix-based lookups on a list of strings.

In my tests, this requires < 5ms to initialize, and brings the cumulative 'find module with suffix' time down to `< 5ms`. This corresponds to a ~100ms improvement in LCP metrics in my browser.

The only behavior change is to remove support for module filenames which are **not** dasherized. I haven't found any core/theme/plugin modules which are not dasherized in their filenames.
2021-11-18 16:38:00 +00:00
..
controllers DEV: Make screen-track a regular service (#14983) 2021-11-17 20:56:06 +01:00
ember DEV: Replace equal() with strictEqual() (#14827) 2021-11-08 10:26:28 +01:00
lib PERF: Improve JS app boot speed by optimizing customResolve() (#14990) 2021-11-18 16:38:00 +00:00
mixins DEV: Replace equal() with strictEqual() (#14827) 2021-11-08 10:26:28 +01:00
models FIX: Include all categories in sortedCategories (#14979) 2021-11-17 00:12:04 +01:00
services DEV: Make screen-track a regular service (#14983) 2021-11-17 20:56:06 +01:00
utils DEV: Replace equal() with strictEqual() (#14827) 2021-11-08 10:26:28 +01:00
localization-test.js DEV: Replace equal() with strictEqual() (#14827) 2021-11-08 10:26:28 +01:00