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

Full rebuild required after delay #86

Closed
degory opened this issue Dec 18, 2017 · 3 comments
Closed

Full rebuild required after delay #86

degory opened this issue Dec 18, 2017 · 3 comments

Comments

@degory
Copy link
Owner

degory commented Dec 18, 2017

In order to ensure reported errors are accurate, and to fix find-all-references across the whole project, the Visual Studio Code extension needs to rebuild the whole project:

  • Before a request that requires it, like find-all-references
  • After an idle period of some reasonable duration
@degory degory added this to the vsce milestone Dec 18, 2017
@quanglewangle
Copy link
Collaborator

quanglewangle commented Dec 18, 2017 via email

@degory
Copy link
Owner Author

degory commented Dec 18, 2017

As a temporary measure, I've updated the Visual Studio Code plugin so it will attempt full project analysis, but if build times are too slow, it will fall back to doing full analysis on just the current open file - version v0.0.21 of the extension and build 533 of the compiler

@degory degory closed this as completed Jan 5, 2018
@degory
Copy link
Owner Author

degory commented Jan 5, 2018

Visual Studio Code extension now rebuilds whole project after five seconds of inactivity.

Have also sped up analysis builds by:

  • Removing some slow string operations that were calculating results that not actually used
  • Disabled garbage collection during limited builds (profiler showed 30% time spent in GC - need to consider replacing conservative GC with an accurate generational collector in future)
  • Turned on link time optimization when building the compiler itself locally. This means that when developing using a locally compiled build of the compiler, you get the same performance as using a release build. No real downside to this, as linking bitcode objects no slower than linking native objects at the moment due to a bug that's forcing the L compiler to rebuild the whole project every time even with native objects.
  • Turned on the graph coloring interface selector offset allocator. This speeds up interface despatch at the expense of requiring link time optimization as it requires a view of all interfaces in the program to work.
    Taken together these changes make analysis roughly twice as fast.

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