enso
enso copied to clipboard
Improve performance of import export resolution
Closes #9236
Pull Request Description
Vast majority of CPU time in ExportsResolution is spent in BindingsMap.SymbolRestriction.optimize. Let's try to remove this method call and see if all the tests are still passing and if the benchmarks are better. At the end, let's also ensure that there is no significant difference in memory consumption, as the optimize
method call removes a lot of objects.
Important Notes
- Introduce new ExportImportResolutionBenchmark that measures the performance of import and export resolution only.
- Note that the already existing ImportStandardLibrariesBenchmark is probably fine for the purpose, but I just wanted to be sure that ONLY the import/export resolution is measured and nothing else, so I have isolated that into a new benchmark.
Checklist
Please ensure that the following checklist has been satisfied before submitting the PR:
- [ ] Benchmarks run and compared
- [ ] Ensure that memory consumption does not increase significantly
- [ ] QA on dev (with
project-manager.jar
) - [ ] QA on AppImage (
./run ide build
)