| 1 | AboutAssets.txt | 656 | 656 | 0,00% |
| 2 | Assets.car | 50424 | 50424 | 0,00% |
| 3 | Info.plist | 1424 | 1424 | 0,00% |
| 4 | MauiSplash.storyboardc | 160 | 160 | 0,00% |
| 5 | Microsoft.Extensions.Configuration.Abstractions.aotdata.arm64 | 920 | 920 | 0,00% |
| 6 | Microsoft.Extensions.Configuration.Abstractions.dll | 5632 | 5632 | 0,00% |
| 7 | Microsoft.Extensions.Configuration.aotdata.arm64 | 53928 | 179512 | 232,87% |
| 8 | Microsoft.Extensions.Configuration.dll | 9728 | 9728 | 0,00% |
| 9 | Microsoft.Extensions.DependencyInjection.Abstractions.aotdata.arm64 | 7448 | 178512 | 2296,78% |
| 10 | Microsoft.Extensions.DependencyInjection.Abstractions.dll | 13312 | 13312 | 0,00% |
| 11 | Microsoft.Extensions.DependencyInjection.aotdata.arm64 | 123976 | 253960 | 104,85% |
| 12 | Microsoft.Extensions.DependencyInjection.dll | 25600 | 25600 | 0,00% |
| 13 | Microsoft.Extensions.Logging.Abstractions.aotdata.arm64 | 44640 | 184584 | 313,49% |
| 14 | Microsoft.Extensions.Logging.Abstractions.dll | 12800 | 12800 | 0,00% |
| 15 | Microsoft.Extensions.Logging.aotdata.arm64 | 60832 | 188192 | 209,36% |
| 16 | Microsoft.Extensions.Logging.dll | 13312 | 13312 | 0,00% |
| 17 | Microsoft.Extensions.Options.aotdata.arm64 | 10840 | 10832 | -0,07% |
| 18 | Microsoft.Extensions.Options.dll | 12288 | 12288 | 0,00% |
| 19 | Microsoft.Extensions.Primitives.aotdata.arm64 | 3936 | 3920 | -0,41% |
| 20 | Microsoft.Extensions.Primitives.dll | 7168 | 7168 | 0,00% |
| 21 | Microsoft.Maui.Controls.Xaml.aotdata.arm64 | 97120 | 243424 | 150,64% |
| 22 | Microsoft.Maui.Controls.Xaml.dll | 74240 | 74240 | 0,00% |
| 23 | Microsoft.Maui.Controls.aotdata.arm64 | 914264 | 1056064 | 15,51% |
| 24 | Microsoft.Maui.Controls.dll | 1038336 | 1038336 | 0,00% |
| 25 | Microsoft.Maui.Essentials.aotdata.arm64 | 62792 | 197168 | 214,00% |
| 26 | Microsoft.Maui.Essentials.dll | 30720 | 30720 | 0,00% |
| 27 | Microsoft.Maui.Graphics.aotdata.arm64 | 142944 | 308936 | 116,12% |
| 28 | Microsoft.Maui.Graphics.dll | 114688 | 114688 | 0,00% |
| 29 | Microsoft.Maui.aotdata.arm64 | 384816 | 534872 | 38,99% |
| 30 | Microsoft.Maui.dll | 386048 | 386048 | 0,00% |
| 31 | Microsoft.iOS.aotdata.arm64 | 325264 | 461264 | 41,81% |
| 32 | Microsoft.iOS.dll | 497664 | 497664 | 0,00% |
| 33 | MyMauiApp | 29000688 | 56731120 | 95,62% |
| 34 | MyMauiApp.aotdata.arm64 | 9464 | 181840 | 1821,39% |
| 35 | MyMauiApp.dll | 18432 | 18432 | 0,00% |
| 36 | OpenSans-Regular.ttf | 107184 | 107184 | 0,00% |
| 37 | OpenSans-Semibold.ttf | 111068 | 111068 | 0,00% |
| 38 | PkgInfo | 8 | 8 | 0,00% |
| 39 | System.Collections.Concurrent.aotdata.arm64 | 74544 | 207520 | 178,39% |
| 40 | System.Collections.Concurrent.dll | 13312 | 13312 | 0,00% |
| 41 | System.Collections.NonGeneric.aotdata.arm64 | 1312 | 1312 | 0,00% |
| 42 | System.Collections.NonGeneric.dll | 7168 | 7168 | 0,00% |
| 43 | System.Collections.Specialized.aotdata.arm64 | 1392 | 1584 | 13,79% |
| 44 | System.Collections.Specialized.dll | 8192 | 8192 | 0,00% |
| 45 | System.Collections.aotdata.arm64 | 6952 | 7208 | 3,68% |
| 46 | System.Collections.dll | 8192 | 8192 | 0,00% |
| 47 | System.ComponentModel.Primitives.aotdata.arm64 | 2096 | 178344 | 8408,78% |
| 48 | System.ComponentModel.Primitives.dll | 9216 | 9216 | 0,00% |
| 49 | System.ComponentModel.TypeConverter.aotdata.arm64 | 16544 | 192896 | 1065,96% |
| 50 | System.ComponentModel.TypeConverter.dll | 49664 | 49664 | 0,00% |
| 51 | System.ComponentModel.aotdata.arm64 | 856 | 856 | 0,00% |
| 52 | System.ComponentModel.dll | 4608 | 4608 | 0,00% |
| 53 | System.Console.aotdata.arm64 | 46432 | 195856 | 321,81% |
| 54 | System.Console.dll | 8704 | 8704 | 0,00% |
| 55 | System.Diagnostics.TraceSource.aotdata.arm64 | 2416 | 2416 | 0,00% |
| 56 | System.Diagnostics.TraceSource.dll | 8704 | 8704 | 0,00% |
| 57 | System.Drawing.Primitives.aotdata.arm64 | 4856 | 175960 | 3523,56% |
| 58 | System.Drawing.Primitives.dll | 7168 | 7168 | 0,00% |
| 59 | System.Drawing.aotdata.arm64 | 808 | 808 | 0,00% |
| 60 | System.Drawing.dll | 4608 | 4608 | 0,00% |
| 61 | System.Linq.Expressions.aotdata.arm64 | 499248 | 610776 | 22,34% |
| 62 | System.Linq.Expressions.dll | 120320 | 120320 | 0,00% |
| 63 | System.Linq.aotdata.arm64 | 121560 | 275264 | 126,44% |
| 64 | System.Linq.dll | 22528 | 22016 | -2,27% |
| 65 | System.Memory.aotdata.arm64 | 824 | 824 | 0,00% |
| 66 | System.Memory.dll | 4608 | 4096 | -11,11% |
| 67 | System.Net.Http.aotdata.arm64 | 130696 | 311760 | 138,54% |
| 68 | System.Net.Http.dll | 61440 | 61952 | 0,83% |
| 69 | System.Net.Primitives.aotdata.arm64 | 1424 | 1432 | 0,56% |
| 70 | System.Net.Primitives.dll | 8704 | 8704 | 0,00% |
| 71 | System.Net.Requests.aotdata.arm64 | 928 | 928 | 0,00% |
| 72 | System.Net.Requests.dll | 5632 | 5632 | 0,00% |
| 73 | System.Net.Security.aotdata.arm64 | 888 | 888 | 0,00% |
| 74 | System.Net.Security.dll | 4608 | 5120 | 11,11% |
| 75 | System.Net.ServicePoint.aotdata.arm64 | 1960 | 1960 | 0,00% |
| 76 | System.Net.ServicePoint.dll | 5632 | 5632 | 0,00% |
| 77 | System.Numerics.Vectors.aotdata.arm64 | 816 | 816 | 0,00% |
| 78 | System.Numerics.Vectors.dll | 4608 | 4608 | 0,00% |
| 79 | System.ObjectModel.aotdata.arm64 | 10304 | 11112 | 7,84% |
| 80 | System.ObjectModel.dll | 13312 | 13312 | 0,00% |
| 81 | System.Private.CoreLib.aotdata.arm64 | 1318848 | 1777432 | 34,77% |
| 82 | System.Private.CoreLib.dll | 912384 | 934400 | 2,41% |
| 83 | System.Private.Uri.aotdata.arm64 | 81728 | 275344 | 236,90% |
| 84 | System.Private.Uri.dll | 25600 | 26624 | 4,00% |
| 85 | System.Private.Xml.aotdata.arm64 | 229216 | 376784 | 64,38% |
| 86 | System.Private.Xml.dll | 247296 | 248320 | 0,41% |
| 87 | System.Runtime.InteropServices.aotdata.arm64 | 840 | 840 | 0,00% |
| 88 | System.Runtime.InteropServices.dll | 4608 | 4608 | 0,00% |
| 89 | System.Runtime.aotdata.arm64 | 808 | 808 | 0,00% |
| 90 | System.Runtime.dll | 11776 | 11776 | 0,00% |
| 91 | System.Security.Cryptography.aotdata.arm64 | 43000 | 180640 | 320,09% |
| 92 | System.Security.Cryptography.dll | 5632 | 5632 | 0,00% |
| 93 | System.Text.RegularExpressions.aotdata.arm64 | 520208 | 677736 | 30,28% |
| 94 | System.Text.RegularExpressions.dll | 139264 | 139776 | 0,37% |
| 95 | System.Threading.Thread.aotdata.arm64 | 816 | 816 | 0,00% |
| 96 | System.Threading.Thread.dll | 4096 | 4608 | 12,50% |
| 97 | System.Threading.aotdata.arm64 | 824 | 824 | 0,00% |
| 98 | System.Threading.dll | 4608 | 4608 | 0,00% |
| 99 | System.Xml.ReaderWriter.aotdata.arm64 | 816 | 816 | 0,00% |
| 100 | System.Xml.ReaderWriter.dll | 4608 | 4608 | 0,00% |
| 101 | System.aotdata.arm64 | 800 | 800 | 0,00% |
| 102 | System.dll | 4096 | 4096 | 0,00% |
| 103 | _CodeSignature | 96 | 96 | 0,00% |
| 104 | appicon60x60@2x.png | 1361 | 1361 | 0,00% |
| 105 | appicon76x76@2x~ipad.png | 1649 | 1649 | 0,00% |
| 106 | dotnet_bot.png | 19036 | 19036 | 0,00% |
| 107 | dotnet_bot@2x.png | 41155 | 41155 | 0,00% |
| 108 | dotnet_bot@3x.png | 55868 | 55868 | 0,00% |
| 109 | icudt.dat | 1824544 | 1859040 | 1,89% |
| 110 | runtimeconfig.bin | 983 | 983 | 0,00% |
| 111 | splash.png | 1554 | 1554 | 0,00% |
| 112 | splash@2x.png | 2750 | 2750 | 0,00% |
| 113 | splash@3x.png | 4776 | 4776 | 0,00% |
| TOTAL: | 40598192 | 72477624 | 78,52% |
Size regression for MAUI iOS apps
MAUI sample app
dotnet new maui -n "MyMauiApp"has regressed in size compared to the.NET7release:.appdirectory size regressed around78.5%from40598192to72477624bytes.ipafile size regressed around74%from13074853to22755931byteswhen compared against dotnet/runtime
mainbranch at: a92c5bcLinked issues
Similar size regressions have been reported for the Mono sample app and WASM here:
for which the following issues have been detected as the ones causing the regressions:
Repro steps
dotnet 7.0.100from https://dotnet.microsoft.com/en-us/download/dotnet/7.07.0.100is the one on the pathTargetinMyMauiApp.csprojfile:.NET7release:.ipafile and.appfolder sizes:current mainfrom step (2) by:DotnetRuntimeRepowith the path to your localdotnet/runtimedirectory (instead of the <some_repo_dir> placeholder)UseCurrentMainBranchwith the valuetruein the following way:
rm -rf bin obj dotnet publish -c Release -f net7.0-ios -r ios-arm64 --self-contained -bl -p:_RequireCodeSigning=false -p:DotnetRuntimeRepo="<some_repo_dir>" -p:UseCurrentMainBranch=trueSize on disk comparison (in bytes)
Observation
Biggest differences can be seen in the app binary
MyMauiApp(row 33) and.aotdata.arm64files./cc: @SamMonoRT@kotlarmilos@rolfbjarne@jonathanpeppers@vargaz@stephentoub