Follow build architecture naming conventions (#5780)
This commit is contained in:
Родитель
56ceaec813
Коммит
154adae64f
|
@ -16,7 +16,7 @@ Visual Studio Code is a large project with lots of moving parts and an active pa
|
|||
|
||||
We described in an [earlier blog post](https://medium.com/crawl-walk-sprint/reducing-vs-code-ci-build-times-by-33-dbb1715b5028) how we reduced CI build times by 33%. This was accomplished by using custom build tasks that cache the node modules that VS Code consumes instead of resolving the packages at build time. While we were happy with this performance boost, we wanted to see how much further we could push the caching tasks that we built.
|
||||
|
||||
When we last talked about our CI engineering, our target platforms spanned Windows, macOS, and Linux. As of today, VS Code targets a much more diverse set of platforms, such as ARM64 and Alpine Linux for its remote server components. In total, we have eight different targets that all share common build steps. This post outlines how we leveraged the caching tasks to reduce CI duplication and further improve our build times.
|
||||
When we last talked about our CI engineering, our target platforms spanned Windows, macOS, and Linux. As of today, VS Code targets a much more diverse set of platforms, such as Arm64 and Alpine Linux for its remote server components. In total, we have eight different targets that all share common build steps. This post outlines how we leveraged the caching tasks to reduce CI duplication and further improve our build times.
|
||||
|
||||
## Room for improvement
|
||||
|
||||
|
@ -100,12 +100,12 @@ Once these changes were implemented, we saw drastic reductions in total build ti
|
|||
| Windows 32 | 59 min | 46 min | 22% |
|
||||
| Linux | 38 min | 23 min | 39% |
|
||||
| macOS | 68 min | 42 min | 38% |
|
||||
| Linux ARM | 22 min | 21 min | 5% |
|
||||
| Linux Arm | 22 min | 21 min | 5% |
|
||||
| Linux Alpine | 23 min | 26 min | -13% |
|
||||
|
||||
![VS Code before and after build times](chart.png)
|
||||
|
||||
The Linux ARM and Linux Alpine targets only build the [VS Code remote server components](https://code.visualstudio.com/docs/remote/remote-overview), so their original build times were good enough. But since they share some common tasks with the standard VS Code client platforms, we decided to have them depend on the common build agent. This resulted in slightly increased build times due to the increased overhead in one case.
|
||||
The Linux Arm and Linux Alpine targets only build the [VS Code remote server components](https://code.visualstudio.com/docs/remote/remote-overview), so their original build times were good enough. But since they share some common tasks with the standard VS Code client platforms, we decided to have them depend on the common build agent. This resulted in slightly increased build times due to the increased overhead in one case.
|
||||
|
||||
Build resubmissions saw a drastic improvement, since the shared agent tasks can be skipped altogether. Here are some numbers for macOS, for example:
|
||||
|
||||
|
|
|
@ -9,7 +9,7 @@ MetaDescription: Configure Visual Studio Code c_cpp_properties.json to get Intel
|
|||
---
|
||||
# IntelliSense for cross-compiling
|
||||
|
||||
The article is about configuring the C/C++ extension to provide proper IntelliSense (code completions) in Visual Studio Code when you compile for a different architecture than your development host machine. For example, when your host machine is x64 but you are compiling for ARM.
|
||||
The article is about configuring the C/C++ extension to provide proper IntelliSense (code completions) in Visual Studio Code when you compile for a different architecture than your development host machine. For example, when your host machine is x64 but you are compiling for Arm.
|
||||
|
||||
The C/C++ extension isn't a compiler--it provides rich language features such as syntax highlighting and IntelliSense. For the extension to provide correct IntelliSense suggestions, and to reflect the right sizes of data types, you need to configure the C++ extension to emulate the target architecture.
|
||||
|
||||
|
@ -19,7 +19,7 @@ These configuration settings are stored in your project's `c_cpp_properties.json
|
|||
|
||||
## Example IntelliSense configuration
|
||||
|
||||
The following shows configuring the C/C++ extension for a Linux x64 host machine that targets Linux ARM. It configures the following IntelliSense settings:
|
||||
The following shows configuring the C/C++ extension for a Linux x64 host machine that targets Linux Arm. It configures the following IntelliSense settings:
|
||||
|
||||
- **Compiler path**: the extension queries your compiler at this location to retrieve system libraries and compiler defines.
|
||||
- **IntelliSense mode**: emulates the target architecture and compiler so that the extension can provide correct IntelliSense and reflect the right sizes of data types such as `pointer`, `size_t`, `long`, and so on.
|
||||
|
|
|
@ -72,7 +72,7 @@ At that point, here are step-by-step instructions to quickly get up and running:
|
|||
[Environment]::SetEnvironmentVariable("Path", [Environment]::GetEnvironmentVariable("Path", "User") + ";$HOME\.vscode-server-launcher\bin", "User")
|
||||
```
|
||||
|
||||
**Windows (ARM):**
|
||||
**Windows (Arm):**
|
||||
|
||||
Run the following commands in a non-elevated PowerShell. You may need to restart your terminal for the PATH changes to apply.
|
||||
|
||||
|
|
|
@ -96,6 +96,6 @@ If you are running macOS Mojave version, you may see dialogs saying "Visual Stud
|
|||
|
||||
If VS Code doesn't update once it restarts, it might be set under quarantine by macOS. Follow the steps in this [issue](https://github.com/microsoft/vscode/issues/7426#issuecomment-425093469) for resolution.
|
||||
|
||||
### Does VS Code run on Apple Silicon machines?
|
||||
### Does VS Code run on Apple silicon machines?
|
||||
|
||||
Yes, VS Code supports macOS ARM64 builds that can run on Macs with the Apple Silicon chipsets. You can install the Universal build, which includes both Intel and Apple Silicon builds, or one of the platform specific builds.
|
||||
Yes, VS Code supports macOS Arm64 builds that can run on Macs with the Apple silicon chipsets. You can install the Universal build, which includes both Intel and Apple silicon builds, or one of the platform specific builds.
|
||||
|
|
|
@ -67,5 +67,5 @@ The folder locations will vary depending on your platform:
|
|||
|
||||
* [Setup overview](/docs/setup/setup-overview.md) - General information about VS Code setup and updates.
|
||||
* [Windows setup](/docs/setup/windows.md) - Details and common questions about installing VS Code on Windows.
|
||||
* [macOS setup](/docs/setup/mac.md) - VS Code is available for both Intel and Apple Silicon macOS machines.
|
||||
* [macOS setup](/docs/setup/mac.md) - VS Code is available for both Intel and Apple silicon macOS machines.
|
||||
* [Linux setup](/docs/setup/linux.md) - Learn about the different VS Code packages available for Linux.
|
||||
|
|
|
@ -153,28 +153,30 @@ If you need a type of installation not listed there, you can manually download v
|
|||
|
||||
Download type | URL
|
||||
--- | ---
|
||||
Windows 64 bit System installer | https://update.code.visualstudio.com/{version}/win32-x64/stable
|
||||
Windows 64 bit User installer| https://update.code.visualstudio.com/{version}/win32-x64-user/stable
|
||||
Windows 64 bit zip | https://update.code.visualstudio.com/{version}/win32-x64-archive/stable
|
||||
Windows 64 bit ARM System installer | https://update.code.visualstudio.com/{version}/win32-arm64/stable
|
||||
Windows 64 bit ARM User installer | https://update.code.visualstudio.com/{version}/win32-arm64-user/stable
|
||||
Windows 64 bit ARM zip | https://update.code.visualstudio.com/{version}/win32-arm64-archive/stable
|
||||
Windows 32 bit System installer | https://update.code.visualstudio.com/{version}/win32/stable
|
||||
Windows 32 bit User installer | https://update.code.visualstudio.com/{version}/win32-user/stable
|
||||
Windows 32 bit zip | https://update.code.visualstudio.com/{version}/win32-archive/stable
|
||||
macOS | https://update.code.visualstudio.com/{version}/darwin/stable
|
||||
Linux 64 bit | https://update.code.visualstudio.com/{version}/linux-x64/stable
|
||||
Linux 64 bit debian | https://update.code.visualstudio.com/{version}/linux-deb-x64/stable
|
||||
Linux 64 bit rpm | https://update.code.visualstudio.com/{version}/linux-rpm-x64/stable
|
||||
Linux 64 bit snap | https://update.code.visualstudio.com/{version}/linux-snap-x64/stable
|
||||
Linux ARM | https://update.code.visualstudio.com/{version}/linux-armhf/stable
|
||||
Linux ARM debian | https://update.code.visualstudio.com/{version}/linux-deb-armhf/stable
|
||||
Linux ARM rpm | https://update.code.visualstudio.com/{version}/linux-rpm-armhf/stable
|
||||
Linux 64 bit ARM | https://update.code.visualstudio.com/{version}/linux-arm64/stable
|
||||
Linux 64 bit ARM debian | https://update.code.visualstudio.com/{version}/linux-deb-arm64/stable
|
||||
Linux 64 bit ARM rpm | https://update.code.visualstudio.com/{version}/linux-rpm-arm64/stable
|
||||
Windows x64 System installer | https://update.code.visualstudio.com/{version}/win32-x64/stable
|
||||
Windows x64 User installer| https://update.code.visualstudio.com/{version}/win32-x64-user/stable
|
||||
Windows x64 zip | https://update.code.visualstudio.com/{version}/win32-x64-archive/stable
|
||||
Windows Arm64 System installer | https://update.code.visualstudio.com/{version}/win32-arm64/stable
|
||||
Windows Arm64 User installer | https://update.code.visualstudio.com/{version}/win32-arm64-user/stable
|
||||
Windows Arm64 zip | https://update.code.visualstudio.com/{version}/win32-arm64-archive/stable
|
||||
Windows x86 System installer | https://update.code.visualstudio.com/{version}/win32/stable
|
||||
Windows x86 User installer | https://update.code.visualstudio.com/{version}/win32-user/stable
|
||||
Windows x86 zip | https://update.code.visualstudio.com/{version}/win32-archive/stable
|
||||
macOS Universal | https://update.code.visualstudio.com/{version}/darwin-universal/stable
|
||||
macOS Intel chip | https://update.code.visualstudio.com/{version}/darwin/stable
|
||||
macOS Apple silicon | https://update.code.visualstudio.com/{version}/darwin-arm64/stable
|
||||
Linux x64 | https://update.code.visualstudio.com/{version}/linux-x64/stable
|
||||
Linux x64 debian | https://update.code.visualstudio.com/{version}/linux-deb-x64/stable
|
||||
Linux x64 rpm | https://update.code.visualstudio.com/{version}/linux-rpm-x64/stable
|
||||
Linux x64 snap | https://update.code.visualstudio.com/{version}/linux-snap-x64/stable
|
||||
Linux Arm32 | https://update.code.visualstudio.com/{version}/linux-armhf/stable
|
||||
Linux Arm32 debian | https://update.code.visualstudio.com/{version}/linux-deb-armhf/stable
|
||||
Linux Arm32 rpm | https://update.code.visualstudio.com/{version}/linux-rpm-armhf/stable
|
||||
Linux Arm64 | https://update.code.visualstudio.com/{version}/linux-arm64/stable
|
||||
Linux Arm64 debian | https://update.code.visualstudio.com/{version}/linux-deb-arm64/stable
|
||||
Linux Arm64 rpm | https://update.code.visualstudio.com/{version}/linux-rpm-arm64/stable
|
||||
|
||||
Substitute the specific release you want in the `{version}` placeholder. For example, to download the Linux ARM debian version for 1.50.1, you would use
|
||||
Substitute the specific release you want in the `{version}` placeholder. For example, to download the Linux Arm32 debian version for 1.50.1, you would use
|
||||
|
||||
```bash
|
||||
https://update.code.visualstudio.com/1.50.1/linux-deb-armhf/stable
|
||||
|
|
Загрузка…
Ссылка в новой задаче