mirror of
https://github.com/discourse/discourse.git
synced 2024-12-03 10:26:17 +08:00
135fdd59ed
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. |
||
---|---|---|
.. | ||
attribute-hook.js | ||
debounce.js | ||
deprecated.js | ||
escape.js | ||
get-owner.js | ||
get-url.js | ||
helpers.js | ||
icon-library.js | ||
object.js | ||
raw-handlebars-helpers.js | ||
raw-handlebars.js | ||
raw-templates.js | ||
suffix-trie.js |