Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Improve parser performance #107

Open
thSoft opened this issue Dec 14, 2015 · 3 comments
Open

Improve parser performance #107

thSoft opened this issue Dec 14, 2015 · 3 comments

Comments

@thSoft
Copy link
Owner

thSoft commented Dec 14, 2015

No description provided.

@nittka
Copy link
Collaborator

nittka commented Jan 31, 2016

Can you enumerate which aspects should be improved. Linking may still be an issue (caching of libraries that are unlikely to change).

nittka pushed a commit to nittka/elysium that referenced this issue May 29, 2016
thSoft added a commit that referenced this issue May 30, 2016
#107 improve build performance by caching default import URIs
@nittka
Copy link
Collaborator

nittka commented Jun 1, 2016

  • I think, collecting the imports transitively can be further optimized. Currently, the standard resource loading mechanism is used (potentially including linking), but we only need the plain parse tree in order to find include elements, so unnecessary work is done there.
  • I found the refactoring operations extremely slow. I guess, they suffer from the same issue. In order to find affected files, they all have to be loaded. Here is some potential for improvement.
  • Measuring the time used for validation during a build should indicate whether it is worth doing som optimization there.

nittka pushed a commit to nittka/elysium that referenced this issue Jun 5, 2016
@nittka
Copy link
Collaborator

nittka commented Jun 5, 2016

I think optimizations in the GlobalScopeProvider should not be done at this point. Looking at the time spent for a full build of Mozart-KV254 (with a custom XtextResource measuring the time for each step), parsing is where most time is spent now.

parse: 2365 (52 invocations)
link: 373 (52 invocations)

parsedefaultImports: 469 (22 invocations)
linkdefaultImports: 63 (22 invocations)

Getting rid of a backtracking parser seems to be the most promising time saver.

@thSoft thSoft changed the title Improve editor performance Improve parser performance Feb 7, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants