-
Notifications
You must be signed in to change notification settings - Fork 34.3k
Closed
Labels
debtCode quality issuesCode quality issuesengineeringVS Code - Build / issue tracking / etc.VS Code - Build / issue tracking / etc.vscode-buildVS Code build process issuesVS Code build process issues
Milestone
Description
Several perf problems with the build that need to be addressed:
- All agents do the same compilation/optimization/minification
- Each extension get compiled/optimized/webpacked 6 (!) times
node.exe
gets downloaded 2 times- macOS agents seem slower than before, though they end up doing more than others:
- Sourcemaps
- Bundle stats (
Submitted bundle stats
)
DONE ✔️
- Remove
VSCODE_WEB
hack, createvscode-web-*
tasks - De-duplicate compilation tasks
- Remove old extensions compilation
- Dedupe extensions build
- Cleanup Node.JS downloading
- Dedupe Node.JS downloading
- Dedupe vscode build
- Alpine
- ARM
- Verify Webpack catches TS type errors
- Use the Yarn cache task
- Run common steps only once in a separate Linux build agent
- Hygiene
- Compilation
- Optimization & minification
- Cache result in VSTS artifacts, such that other agents and successive build resubmissions can simply pick that up
- Have
VSCODE_COMPILE_ONLY
flag - Get template for arm/alpine
- Remove
node build/lib/builtInExtensions.js
- Move
quality/*/package.json
dependencies into actual package.json dependencies - Deduplicate extension compilation Remove legacy extensions compilation from build #77058
- Cleanup VSCODE_ARCH usages in Linux build 7b0cd32
- Set sensible values for task timeout
- Lower agent parallel jobs
- Move sourcemaps to common agent
Move bundle stats to common agentMove upload-configuration to common agent
Task | Step | Windows | Linux | macOS | Unit |
---|---|---|---|---|---|
Prepare build | 11 | 6.5 | 7.5 | min | |
Build | 25 | 21 | 45 | min | |
VS Code | compile-client-build | 170 | 160 | 215 | sec |
optimize-vscode | 31 | 31 | 86 | sec | |
minify-vscode | 152 | 139 | 290 | sec | |
vscode-win32-x64-min | 259 | 191 | 436 | sec | |
Server | compile-client-build | 146 | 134 | 198 | sec |
optimize-vscode-reh | 5 | 5 | 16 | sec | |
minify-vscode-reh | 27 | 23 | 79 | sec | |
vscode-reh-win32-x64-min | 169 | 113 | 312 | sec | |
Web | compile-client-build | 148 | 136 | 188 | sec |
optimize-vscode-reh | 27 | 28 | 64 | sec | |
minify-vscode-reh (web) | 134 | 120 | 273 | sec | |
vscode-reh-win32-x64-min (web) | 167 | 116 | 329 | sec | |
Unit | 1.5 | 1 | 1.5 | min | |
Integration | 9 | 0 | 8 | min | |
Publish | 6 | 4 | 0.5 | min |
Metadata
Metadata
Assignees
Labels
debtCode quality issuesCode quality issuesengineeringVS Code - Build / issue tracking / etc.VS Code - Build / issue tracking / etc.vscode-buildVS Code build process issuesVS Code build process issues