-
Notifications
You must be signed in to change notification settings - Fork 5.2k
Description
In the .NET 5 release, we established a baseline of 2.2 MB for the fully compressed output of the default Blazor template running with .NET Core setup. For .NET 6 version, we are aiming to reduce that size by at least 20% for the same template to address size regression compare to .NET Core 3.x where the default template size was 1.7 MB. This is an ambitious goal, and will likely require numerous aggressive approaches to achieve it, including the removal of numerous non-essential features.
The only concern here is the wire size with full compression (at the moment, Brotli). The size or the required computation on either end is unimportant.
There is a dashboard available for historical size tracking at https://aka.ms/dotnetperfstatus. The case we care about is file type .br
, .NET 6
. Of particular note is the currently largest files: dotnet.wasm at 0.9 MB, System.Private.CoreLib.dll at 0.4 MB, and icudt.dat at 0.3 MB. No other file is above 0.1 MB, but combined they are around 0.6 MB.
Work Items
- MonoVM runtime size-reduction tracking MonoVM runtime size-reduction for WebAssembly #43778
- Core Managed libraries size-reduction Core Managed libraries size-reduction for WebAssembly #44530
- Blazor specific libraries work
- Enable trimming of all Blazor libraries Mark all Blazor runtime pack assemblies as trimmable aspnetcore#30286
-
Add option to disable logging in sample Blazor app Add option to disable logging in sample Blazor app aspnetcore#27721 - Excessive managed libraries dependencies Default Blazor Wasm template managed libraries size reduction aspnetcore#30098
- Always run native linker for release/publish outputs [wasm] Enable relinking of the wasm binary at build time #43783
- Add size tracking for WebAssembly functional tests
- Include more Blazor apps in the size tracking dashboard