enso icon indicating copy to clipboard operation
enso copied to clipboard

Improve performance of import export resolution

Open Akirathan opened this issue 9 months ago • 14 comments

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)

Akirathan avatar May 22 '24 16:05 Akirathan