-
Notifications
You must be signed in to change notification settings - Fork 5.3k
Open
Labels
area-Infrastructure-monoperf-pipelineIssues with dotnet-runtime-perf, or runtime-wasm-perf pipelinesIssues with dotnet-runtime-perf, or runtime-wasm-perf pipelines
Milestone
Description
Description
A notable difference has been detected in the SOD measurements for the HelloiOS Mono sample app with different versions of Xcode.
The table below shows the difference in the executable binary HelloiOS of around 7% in favour of Xcode 14.1.0 when compared to Xcode 13.3.0
SOD comparison for HelloiOS sample app
| File | Xcode 13.3.0 | Xcode 14.1.0 |
|---|---|---|
| HelloiOS | 23126720 | 21593736 |
| Info.plist | 980 | 979 |
| PkgInfo | 8 | 8 |
| Program.aotdata | 4792 | 4792 |
| Program.deps.json | 12411 | 12411 |
| Program.dll | 6656 | 6656 |
| Program.runtimeconfig.json | 1064 | 1064 |
| System.Console.aotdata | 177912 | 177912 |
| System.Console.dll | 17408 | 17408 |
| System.Private.CoreLib.aotdata | 1169640 | 1169640 |
| System.Private.CoreLib.dll | 1047552 | 1047552 |
| icudt.dat | 1859040 | 1859040 |
| icudt_CJK.dat | 956416 | 956416 |
| icudt_EFIGS.dat | 550320 | 550320 |
| icudt_no_CJK.dat | 1106560 | 1106560 |
Since .NET performance pipelines seem to be using Xcode 13.2.1, consider upgrading the Xcode version to get more accurate measurements.
Repro
- Clean checkout current main
- Set Xcode version to 13.3.0
- Build the runtime for iOS
./build.sh mono+libs -c Release -os iOS -arch arm64- Build the HelloiOS sample
cd src/mono/sample/iOS/
export DevTeamProvisioning=-;make build-appbundle TARGET=iOS MONO_ARCH=arm64 MONO_CONFIG=Release AOT=true USE_LLVM=true DEPLOY_AND_RUN=false
ls -al bin/ios-arm64/publish/app/HelloiOS/Release-iphoneos/HelloiOS.app- Record results
- Repeat the steps by setting the Xcode version to 14.1.0 in step (2)
am11
Metadata
Metadata
Assignees
Labels
area-Infrastructure-monoperf-pipelineIssues with dotnet-runtime-perf, or runtime-wasm-perf pipelinesIssues with dotnet-runtime-perf, or runtime-wasm-perf pipelines