Defer loading of Blob/Queue/Table server modules to reduce extension codeLoadingTime - #2766
Open
Akanksha Jain (jainakanksha-msft) with Copilot wants to merge 2 commits into
Open
Defer loading of Blob/Queue/Table server modules to reduce extension codeLoadingTime#2766Akanksha Jain (jainakanksha-msft) with Copilot wants to merge 2 commits into
Akanksha Jain (jainakanksha-msft) with Copilot wants to merge 2 commits into
Conversation
Contributor
There was a problem hiding this comment.
Copilot wasn't able to review any files in this pull request.
💡 Configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
Copilot started work on behalf of
Akanksha Jain (jainakanksha-msft)
September 2, 2026 12:26
View session
Open
…adingTime Co-authored-by: jainakanksha-msft <181211853+jainakanksha-msft@users.noreply.github.com>
Copilot
AI
changed the title
[WIP] Fix performance issue for Azurite extension
Defer loading of Blob/Queue/Table server modules to reduce extension codeLoadingTime
Sep 2, 2026
Copilot started reviewing on behalf of
Akanksha Jain (jainakanksha-msft)
September 2, 2026 12:31
View session
Contributor
There was a problem hiding this comment.
🟡 Changes recommended
The user-visible extension performance improvement should be reflected in ChangeLog.md under “Upcoming Release” to align with the repo’s release-note practices.
Once you've addressed the issues Copilot identified, you can request another Copilot review.
Review details
- Files reviewed: 1/1 changed files
- Comments generated: 1
- Review effort level: Lite
Comment on lines
+12
to
+15
| // at module load time. This significantly reduces the extension's | ||
| // "codeLoadingTime" reported by VS Code, since the cost of loading these | ||
| // modules is deferred to an asynchronous import instead of being paid | ||
| // synchronously while VS Code loads the extension's main module. |
Member
|
Copilot what are the solutions of this problem with all the pros and cons. |
Copilot started work on behalf of
Akanksha Jain (jainakanksha-msft)
September 2, 2026 12:34
View session
Copilot stopped work on behalf of
Akanksha Jain (jainakanksha-msft) due to an error
September 2, 2026 12:35
Akanksha Jain (jainakanksha-msft)
marked this pull request as ready for review
September 4, 2026 12:09
Akanksha Jain (jainakanksha-msft)
approved these changes
Sep 4, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Extension activation reported a
codeLoadingTimeof ~10 seconds, sinceextension.tsstatically importedVSCServerManagerBlob/Queue/Table, which transitively pull in the full Blob/Queue/Table server implementations (express, middleware, request handlers, etc.). VS Code requires the extension's main module synchronously before callingactivate(), so this entire dependency graph was being loaded synchronously at module load time — exactly whatcodeLoadingTimemeasures.Changes
src/extension.ts: replaced static imports ofVSCServerManagerBlob,VSCServerManagerQueue, andVSCServerManagerTablewith dynamicimport()calls made in parallel insideactivate()(nowasync).This moves the cost of loading the heavy server modules from synchronous module load (blocking
codeLoadingTime) to an async step during activation, without changing any command registration, status bar, or event listener wiring.