Sourcemap performance improvements (#668)

This PR brings two performance improvements to the `rojo sourcemap`
command:

- Use `rayon` with a small threadpool to parallelize sourcemap
generation while still keeping startup cost very low
- Remove conversions to owned strings and use lifetimes tied to the dom
instead, which mostly improves performance with the
`--include-non-scripts` flag enabled

From my personal testing on an M1 mac this decreases the sourcemap
generation time of our games by 2x or more, from ~20ms to ~8ms on one
project and ~30ms to ~15ms on another. Generation is pretty fast to
begin with but since sourcemaps are heavily used in interactive tools
(like luau-lsp) a difference of a couple frames can be great for ux.
This commit is contained in:
Filip Tibell
2023-05-06 10:01:15 +02:00
committed by GitHub
parent 4b62190aff
commit 305423b856
4 changed files with 30 additions and 16 deletions

View File

@@ -1,6 +1,9 @@
# Rojo Changelog
## Unreleased Changes
* Significantly improved performance of `rojo sourcemap`. ([#668])
[#668]: https://github.com/rojo-rbx/rojo/pull/668
## [7.3.0] - April 22, 2023
* Added `$attributes` to project format. ([#574])