Skip to content

Conversation

@sheetalkamat
Copy link
Member

@sheetalkamat sheetalkamat commented Jul 24, 2018

With this change Configured projects that are part of external project, are just is just created but reading the config file and creating program based on the root files is postponed to when needed.
To delay loading for config file and program the changes included are:

  1. Delay actual loading of configured project that gets created as part of open external project
  2. On compileOnSaveAffectedFileList do not load all projects if the project to get list on affected file list is specified
  3. During synchronizeProjectList send file names as empty list for configured projects that aren't loaded yet.

@sheetalkamat sheetalkamat changed the title Delay update graph when opening external project, and delay load configured project referenced from external project when opening it Delay load configured project referenced from external project when opening it Jul 25, 2018
@sheetalkamat sheetalkamat changed the title Delay load configured project referenced from external project when opening it [WIP] Delay load configured project referenced from external project when opening it Jul 25, 2018
@sheetalkamat sheetalkamat force-pushed the optimizeOpenExternalProject branch from 4716d31 to 8c5ae9b Compare August 1, 2018 22:47
…igured project referenced from external project when opening it
Since external projects are needed to be uptodate when opening file,
so in most likely scenarios these will be loaded anyways so there is no saving in postponing this work
…ynchronizeProjectList for project opened by external project
@sheetalkamat sheetalkamat force-pushed the optimizeOpenExternalProject branch from 8c5ae9b to f67bdd4 Compare August 6, 2018 23:24
@sheetalkamat
Copy link
Member Author

@RyanCavanaugh this is the PR that does lazy loading of configured projects as discussed offline.

setProjectOptionsUsed(project);
const data: ProjectInfoTelemetryEventData = {
projectId: this.host.createSHA256Hash(projectKey),
projectId: this.host.createSHA256Hash(project.projectName),
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@amcasey is this OK?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Since projects are not 1:1 with users or devices and the hash function is cryptographically secure, I understand that this is okay.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Note that this isnt a real change since project key was project.projectName (configFile name for configured projects and external project name ) so this is just instead of passing it through the calls uses it directly through the key, hence no changes in the tests as well.

@RyanCavanaugh
Copy link
Member

Overall LGTM; just had a GDPR compliance check

@sheetalkamat sheetalkamat changed the title [WIP] Delay load configured project referenced from external project when opening it Delay load configured project referenced from external project when opening it Aug 17, 2018
@sheetalkamat sheetalkamat merged commit 0f97620 into master Aug 17, 2018
@sheetalkamat sheetalkamat deleted the optimizeOpenExternalProject branch August 17, 2018 19:26
@microsoft microsoft locked as resolved and limited conversation to collaborators Oct 21, 2025
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants