forked from DonJayamanne/pythonVSCode
-
Notifications
You must be signed in to change notification settings - Fork 1.3k
Closed
Labels
bugIssue identified by VS Code Team member as probable bugIssue identified by VS Code Team member as probable bugdebtCovers everything internal: CI, testing, refactoring of the codebase, etc.Covers everything internal: CI, testing, refactoring of the codebase, etc.importantIssue identified as high-priorityIssue identified as high-prioritymetaIssue that is tracking an overall projectIssue that is tracking an overall projectneeds proposalNeed to make some design decisionsNeed to make some design decisions
Milestone
Description
Following are some changes that can be made to improve the load times of the python extension:
Changes required
- Load 3rd party npm modules on demand #3018 Load 3rd party npm modules on demand (in code using
require)
Easy change, and should be done selectively, without having to sacrifice benefits of typechecking, etc. - Create a liter to ensure npm modules are always loaded on demand (with ability to add exceptions, e.g.
fs,child_process, etc). - Perform all validation checks in the background #3019 Perform all validation checks (if interpreter is available, using default Mac Interpreter, etc) in the background (needs Spec).
- Activate parts of the extension in the background.
- Load language server in the background #3020 Load (and activate) language server in the background
Document and notify LS and IC teams.- Provided intelli-code uses
activate().readythings should work as expected
- Provided intelli-code uses
- WIP - Make the language server the default experience #2722 Download LS in the background
- Bundle extension into a single file #3021 Webpack bundling (with source maps)
- Get this done first, so we have this in insiders build (that can be optionally turned off when necessary).
Long Term Changes:
- Create perf tests to measure and compare code load times of extension #3022 Create more perf tests to measure and compare load times of extension, in particular the following times:
- codeLoadingTime
- activateCallTime
- activateResolvedTime
We have tests today that do something similar, we need to ensure they are more granular. (compare against release and dev versions of extension - as done today).
- Change interpreters list into an Observable list #3023 Observable list of interpreters (currently we need
any,subsribe,filter, and similar capabitlies of interpreters, but in a non-blocking way, thats exactly that Observable lists provide - RxJs).- Short term solution could be to add new code for perf improvements
- E.g. add a predicate to
IInterpreterService.getInterpreters, add methodsIInterpreterService.hasAny,IInterpreterService.onChange()
@Microsoft/pvsc-team /cc
Metadata
Metadata
Assignees
Labels
bugIssue identified by VS Code Team member as probable bugIssue identified by VS Code Team member as probable bugdebtCovers everything internal: CI, testing, refactoring of the codebase, etc.Covers everything internal: CI, testing, refactoring of the codebase, etc.importantIssue identified as high-priorityIssue identified as high-prioritymetaIssue that is tracking an overall projectIssue that is tracking an overall projectneeds proposalNeed to make some design decisionsNeed to make some design decisions