Skip to content

Commit 64c0dfb

Browse files
matouskozakCopilot
andauthored
[PERF][iOS] Simplify iOS performance measurement scripts (#120531)
* Refactor runtime iOS performance measurements - clearer naming of codegen/runtime variants - remove non strip symbols variants Co-authored-by: Copilot <[email protected]> --------- Co-authored-by: Copilot <[email protected]>
1 parent 0b9f734 commit 64c0dfb

File tree

3 files changed

+102
-159
lines changed

3 files changed

+102
-159
lines changed

eng/pipelines/performance/templates/build-perf-sample-apps.yml

Lines changed: 102 additions & 156 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,10 @@ parameters:
44
nameSuffix: ''
55

66
steps:
7-
# Build Android sample app
7+
# Build Android sample app
88
- ${{ if eq(parameters.osGroup, 'android') }}:
99
- ${{ if eq(parameters.runtimeType, 'mono') }}:
10-
# Mono JIT Build
10+
# Mono JIT build
1111
- script: make run TARGET_ARCH=arm64 DEPLOY_AND_RUN=false RUNTIME_FLAVOR=Mono
1212
workingDirectory: $(Build.SourcesDirectory)/src/mono/sample/Android
1313
displayName: Build HelloAndroid sample app RUNTIME_FLAVOR=Mono
@@ -30,7 +30,7 @@ steps:
3030
workingDirectory: $(Build.SourcesDirectory)/artifacts/bin
3131
displayName: clean bindir
3232

33-
# Mono AOT Build
33+
# Mono AOT build
3434
- script: make run TARGET_ARCH=arm64 DEPLOY_AND_RUN=false RUNTIME_FLAVOR=Mono AOT=true
3535
workingDirectory: $(Build.SourcesDirectory)/src/mono/sample/Android
3636
displayName: Build HelloAndroid sample app RUNTIME_FLAVOR=Mono AOT=true
@@ -54,7 +54,7 @@ steps:
5454
displayName: clean bindir
5555

5656
- ${{ if eq(parameters.runtimeType, 'coreclr') }}:
57-
# CoreCLR JIT Build
57+
# CoreCLR JIT build
5858
- script: make run TARGET_ARCH=arm64 DEPLOY_AND_RUN=false RUNTIME_FLAVOR=CoreCLR
5959
workingDirectory: $(Build.SourcesDirectory)/src/mono/sample/Android
6060
displayName: Build HelloAndroid sample app RUNTIME_FLAVOR=CoreCLR
@@ -123,157 +123,103 @@ steps:
123123
workingDirectory: $(Build.SourcesDirectory)/artifacts/bin
124124
displayName: clean bindir
125125

126-
- ${{ if and(eq(parameters.osGroup, 'ios'), eq(parameters.nameSuffix, 'iOSMono')) }}:
127-
- script: make build-appbundle TARGET_OS=ios TARGET_ARCH=arm64 BUILD_CONFIG=Release AOT=True USE_LLVM=False DEPLOY_AND_RUN=false STRIP_DEBUG_SYMBOLS=false
128-
env:
129-
DevTeamProvisioning: '-'
130-
workingDirectory: $(Build.SourcesDirectory)/src/mono/sample/iOS
131-
displayName: Build HelloiOS AOT sample app LLVM=False STRIP_SYMBOLS=False
132-
- task: PublishBuildArtifacts@1
133-
condition: succeededOrFailed()
134-
displayName: 'Publish binlog'
135-
inputs:
136-
pathtoPublish: $(Build.SourcesDirectory)/src/mono/sample/iOS/msbuild.binlog
137-
artifactName: iOSMonoArm64NoLLVMNoStripSymbolsBuildLog
138-
- template: /eng/pipelines/common/upload-artifact-step.yml
139-
parameters:
140-
rootFolder: $(Build.SourcesDirectory)/src/mono/sample/iOS/bin/ios-arm64/Bundle/HelloiOS/Release-iphoneos/HelloiOS.app
141-
includeRootFolder: true
142-
displayName: iOS Sample App NoLLVM
143-
artifactName: iOSSampleAppNoLLVMSymbols
144-
archiveExtension: '.zip'
145-
archiveType: zip
146-
- script: rm -r -f $(Build.SourcesDirectory)/src/mono/sample/iOS/bin
147-
workingDirectory: $(Build.SourcesDirectory)/src/mono/sample/iOS
148-
displayName: Clean bindir
149-
- script: make build-appbundle TARGET_OS=ios TARGET_ARCH=arm64 BUILD_CONFIG=Release AOT=True USE_LLVM=False DEPLOY_AND_RUN=false STRIP_DEBUG_SYMBOLS=true
150-
env:
151-
DevTeamProvisioning: '-'
152-
workingDirectory: $(Build.SourcesDirectory)/src/mono/sample/iOS
153-
displayName: Build HelloiOS AOT sample app LLVM=False STRIP_SYMBOLS=True
154-
- task: PublishBuildArtifacts@1
155-
condition: succeededOrFailed()
156-
displayName: 'Publish binlog'
157-
inputs:
158-
pathtoPublish: $(Build.SourcesDirectory)/src/mono/sample/iOS/msbuild.binlog
159-
artifactName: iOSMonoArm64NoLLVMStripSymbolsBuildLog
160-
- template: /eng/pipelines/common/upload-artifact-step.yml
161-
parameters:
162-
rootFolder: $(Build.SourcesDirectory)/src/mono/sample/iOS/bin/ios-arm64/Bundle/HelloiOS/Release-iphoneos/HelloiOS.app
163-
includeRootFolder: true
164-
displayName: iOS Sample App NoLLVM NoSymbols
165-
artifactName: iOSSampleAppNoLLVMNoSymbols
166-
archiveExtension: '.zip'
167-
archiveType: zip
168-
- script: rm -r -f $(Build.SourcesDirectory)/src/mono/sample/iOS/bin
169-
workingDirectory: $(Build.SourcesDirectory)/src/mono/sample/iOS
170-
displayName: Clean bindir
171-
- script: make build-appbundle TARGET_OS=ios TARGET_ARCH=arm64 BUILD_CONFIG=Release AOT=True USE_LLVM=True DEPLOY_AND_RUN=false STRIP_DEBUG_SYMBOLS=false
172-
env:
173-
DevTeamProvisioning: '-'
174-
workingDirectory: $(Build.SourcesDirectory)/src/mono/sample/iOS
175-
displayName: Build HelloiOS AOT sample app LLVM=True STRIP_SYMBOLS=False
176-
- task: PublishBuildArtifacts@1
177-
condition: succeededOrFailed()
178-
displayName: 'Publish binlog'
179-
inputs:
180-
pathtoPublish: $(Build.SourcesDirectory)/src/mono/sample/iOS/msbuild.binlog
181-
artifactName: iOSMonoArm64LLVMNoStripSymbolsBuildLog
182-
- template: /eng/pipelines/common/upload-artifact-step.yml
183-
parameters:
184-
rootFolder: $(Build.SourcesDirectory)/src/mono/sample/iOS/bin/ios-arm64/Bundle/HelloiOS/Release-iphoneos/HelloiOS.app
185-
includeRootFolder: true
186-
displayName: iOS Sample App LLVM
187-
artifactName: iOSSampleAppLLVMSymbols
188-
archiveExtension: '.zip'
189-
archiveType: zip
190-
- script: rm -r -f $(Build.SourcesDirectory)/src/mono/sample/iOS/bin
191-
workingDirectory: $(Build.SourcesDirectory)/src/mono/sample/iOS
192-
displayName: Clean bindir
193-
- script: make build-appbundle TARGET_OS=ios TARGET_ARCH=arm64 BUILD_CONFIG=Release AOT=True USE_LLVM=True DEPLOY_AND_RUN=false STRIP_DEBUG_SYMBOLS=true
194-
env:
195-
DevTeamProvisioning: '-'
196-
workingDirectory: $(Build.SourcesDirectory)/src/mono/sample/iOS
197-
displayName: Build HelloiOS AOT sample app LLVM=True STRIP_SYMBOLS=True
198-
- task: PublishBuildArtifacts@1
199-
condition: succeededOrFailed()
200-
displayName: 'Publish binlog'
201-
inputs:
202-
pathtoPublish: $(Build.SourcesDirectory)/src/mono/sample/iOS/msbuild.binlog
203-
artifactName: iOSMonoArm64LLVMStripSymbolsBuildLog
204-
- template: /eng/pipelines/common/upload-artifact-step.yml
205-
parameters:
206-
rootFolder: $(Build.SourcesDirectory)/src/mono/sample/iOS/bin/ios-arm64/Bundle/HelloiOS/Release-iphoneos/HelloiOS.app
207-
includeRootFolder: true
208-
displayName: iOS Sample App LLVM NoSymbols
209-
artifactName: iOSSampleAppLLVMNoSymbols
210-
archiveExtension: '.zip'
211-
archiveType: zip
126+
# Build iOS sample app
127+
- ${{ if eq(parameters.osGroup, 'ios') }}:
128+
- ${{ if eq(parameters.nameSuffix, 'iOSMono') }}:
129+
# Mono FullAOT (no LLVM) build
130+
- script: make build-appbundle TARGET_OS=ios TARGET_ARCH=arm64 USE_MONO_RUNTIME=true BUILD_CONFIG=Release AOT=True INTERP=false USE_LLVM=False DEPLOY_AND_RUN=false STRIP_DEBUG_SYMBOLS=true
131+
env:
132+
DevTeamProvisioning: '-'
133+
workingDirectory: $(Build.SourcesDirectory)/src/mono/sample/iOS
134+
displayName: Build HelloiOS Mono FullAOT sample app LLVM=False STRIP_SYMBOLS=True
135+
- task: PublishBuildArtifacts@1
136+
condition: succeededOrFailed()
137+
displayName: 'Publish binlog'
138+
inputs:
139+
pathtoPublish: $(Build.SourcesDirectory)/src/mono/sample/iOS/msbuild.binlog
140+
artifactName: iOSMonoFullAOTArm64NoLLVMStripSymbolsBuildLog
141+
- template: /eng/pipelines/common/upload-artifact-step.yml
142+
parameters:
143+
rootFolder: $(Build.SourcesDirectory)/src/mono/sample/iOS/bin/ios-arm64/Bundle/HelloiOS/Release-iphoneos/HelloiOS.app
144+
includeRootFolder: true
145+
displayName: iOS Sample App Mono FullAOT NoLLVM NoSymbols
146+
artifactName: iOSSampleAppMonoFullAOTNoLLVMNoSymbols
147+
archiveExtension: '.zip'
148+
archiveType: zip
149+
- script: rm -r -f $(Build.SourcesDirectory)/src/mono/sample/iOS/bin
150+
workingDirectory: $(Build.SourcesDirectory)/src/mono/sample/iOS
151+
displayName: Clean bindir
152+
153+
# Mono FullAOT (with LLVM) build
154+
- script: make build-appbundle TARGET_OS=ios TARGET_ARCH=arm64 USE_MONO_RUNTIME=true BUILD_CONFIG=Release AOT=True INTERP=false USE_LLVM=True DEPLOY_AND_RUN=false STRIP_DEBUG_SYMBOLS=true
155+
env:
156+
DevTeamProvisioning: '-'
157+
workingDirectory: $(Build.SourcesDirectory)/src/mono/sample/iOS
158+
displayName: Build HelloiOS Mono FullAOT sample app LLVM=True STRIP_SYMBOLS=True
159+
- task: PublishBuildArtifacts@1
160+
condition: succeededOrFailed()
161+
displayName: 'Publish binlog'
162+
inputs:
163+
pathtoPublish: $(Build.SourcesDirectory)/src/mono/sample/iOS/msbuild.binlog
164+
artifactName: iOSMonoFullAOTArm64LLVMStripSymbolsBuildLog
165+
- template: /eng/pipelines/common/upload-artifact-step.yml
166+
parameters:
167+
rootFolder: $(Build.SourcesDirectory)/src/mono/sample/iOS/bin/ios-arm64/Bundle/HelloiOS/Release-iphoneos/HelloiOS.app
168+
includeRootFolder: true
169+
displayName: iOS Sample App Mono FullAOT LLVM NoSymbols
170+
artifactName: iOSSampleAppMonoFullAOTLLVMNoSymbols
171+
archiveExtension: '.zip'
172+
archiveType: zip
173+
- script: rm -r -f $(Build.SourcesDirectory)/src/mono/sample/iOS/bin
174+
workingDirectory: $(Build.SourcesDirectory)/src/mono/sample/iOS
175+
displayName: Clean bindir
212176

213-
- ${{ if and(eq(parameters.osGroup, 'ios'), eq(parameters.runtimeType, 'coreclr')) }}:
214-
# CoreCLR Interpreter Build
215-
- script: make build-appbundle TARGET_OS=ios TARGET_ARCH=arm64 BUILD_CONFIG=Checked DEPLOY_AND_RUN=false STRIP_DEBUG_SYMBOLS=false USE_MONO_RUNTIME=false AOT=false
216-
env:
217-
DevTeamProvisioning: '-'
218-
workingDirectory: $(Build.SourcesDirectory)/src/mono/sample/iOS
219-
displayName: Build HelloiOS sample app
220-
- task: PublishBuildArtifacts@1
221-
condition: succeededOrFailed()
222-
displayName: 'Publish binlog'
223-
inputs:
224-
pathtoPublish: $(Build.SourcesDirectory)/src/mono/sample/iOS/msbuild.binlog
225-
artifactName: iOSCoreCLRArm64BuildLog
226-
- template: /eng/pipelines/common/upload-artifact-step.yml
227-
parameters:
228-
rootFolder: $(Build.SourcesDirectory)/src/mono/sample/iOS/bin/ios-arm64/Bundle/HelloiOS/Debug-iphoneos/HelloiOS.app
229-
includeRootFolder: true
230-
displayName: iOS Sample App
231-
artifactName: iOSSampleApp
232-
archiveExtension: '.zip'
233-
archiveType: zip
234-
- script: rm -r -f $(Build.SourcesDirectory)/src/mono/sample/iOS/bin
235-
workingDirectory: $(Build.SourcesDirectory)/src/mono/sample/iOS
236-
displayName: Clean bindir
177+
- ${{ if eq(parameters.runtimeType, 'coreclr') }}:
178+
# CoreCLR Interpreter build
179+
- script: make build-appbundle TARGET_OS=ios TARGET_ARCH=arm64 USE_MONO_RUNTIME=false BUILD_CONFIG=Checked AOT=false DEPLOY_AND_RUN=false STRIP_DEBUG_SYMBOLS=true
180+
env:
181+
DevTeamProvisioning: '-'
182+
workingDirectory: $(Build.SourcesDirectory)/src/mono/sample/iOS
183+
displayName: Build HelloiOS CoreCLR Interpreter sample app STRIP_SYMBOLS=True
184+
- task: PublishBuildArtifacts@1
185+
condition: succeededOrFailed()
186+
displayName: 'Publish binlog'
187+
inputs:
188+
pathtoPublish: $(Build.SourcesDirectory)/src/mono/sample/iOS/msbuild.binlog
189+
artifactName: iOSCoreCLRInterpreterArm64StripSymbolsBuildLog
190+
- template: /eng/pipelines/common/upload-artifact-step.yml
191+
parameters:
192+
rootFolder: $(Build.SourcesDirectory)/src/mono/sample/iOS/bin/ios-arm64/Bundle/HelloiOS/Debug-iphoneos/HelloiOS.app
193+
includeRootFolder: true
194+
displayName: iOS Sample App CoreCLR Interpreter NoSymbols
195+
artifactName: iOSSampleAppCoreCLRInterpreterNoSymbols
196+
archiveExtension: '.zip'
197+
archiveType: zip
198+
- script: rm -r -f $(Build.SourcesDirectory)/src/mono/sample/iOS/bin
199+
workingDirectory: $(Build.SourcesDirectory)/src/mono/sample/iOS
200+
displayName: Clean bindir
237201

238-
- ${{ if and(eq(parameters.osGroup, 'ios'), eq(parameters.nameSuffix, 'iOSNativeAOT')) }}:
239-
- script: make hello-app TARGET_OS=ios TARGET_ARCH=arm64 BUILD_CONFIG=Release DEPLOY_AND_RUN=false STRIP_DEBUG_SYMBOLS=false
240-
env:
241-
DevTeamProvisioning: '-'
242-
workingDirectory: $(Build.SourcesDirectory)/src/mono/sample/iOS-NativeAOT
243-
displayName: Build HelloiOS Native AOT sample app STRIP_SYMBOLS=False
244-
- task: PublishBuildArtifacts@1
245-
condition: succeededOrFailed()
246-
displayName: 'Publish binlog'
247-
inputs:
248-
pathtoPublish: $(Build.SourcesDirectory)/src/mono/sample/iOS-NativeAOT/msbuild.binlog
249-
artifactName: iOSNativeAOTArm64NoStripSymbolsBuildLog
250-
- template: /eng/pipelines/common/upload-artifact-step.yml
251-
parameters:
252-
rootFolder: $(Build.SourcesDirectory)/src/mono/sample/iOS-NativeAOT/bin/ios-arm64/Bundle/HelloiOS/Release-iphoneos/HelloiOS.app
253-
includeRootFolder: true
254-
displayName: iOS Sample App Symbols
255-
artifactName: iOSSampleAppSymbols
256-
archiveExtension: '.zip'
257-
archiveType: zip
258-
- script: rm -r -f $(Build.SourcesDirectory)/src/mono/sample/iOS-NativeAOT/bin
259-
workingDirectory: $(Build.SourcesDirectory)/src/mono/sample/iOS-NativeAOT
260-
displayName: Clean bindir
261-
- script: make hello-app TARGET_OS=ios TARGET_ARCH=arm64 BUILD_CONFIG=Release DEPLOY_AND_RUN=false STRIP_DEBUG_SYMBOLS=true
262-
env:
263-
DevTeamProvisioning: '-'
264-
workingDirectory: $(Build.SourcesDirectory)/src/mono/sample/iOS-NativeAOT
265-
displayName: Build HelloiOS Native AOT sample app STRIP_SYMBOLS=True
266-
- task: PublishBuildArtifacts@1
267-
condition: succeededOrFailed()
268-
displayName: 'Publish binlog'
269-
inputs:
270-
pathtoPublish: $(Build.SourcesDirectory)/src/mono/sample/iOS-NativeAOT/msbuild.binlog
271-
artifactName: iOSNativeAOTArm64StripSymbolsBuildLog
272-
- template: /eng/pipelines/common/upload-artifact-step.yml
273-
parameters:
274-
rootFolder: $(Build.SourcesDirectory)/src/mono/sample/iOS-NativeAOT/bin/ios-arm64/Bundle/HelloiOS/Release-iphoneos/HelloiOS.app
275-
includeRootFolder: true
276-
displayName: iOS Sample App NoSymbols
277-
artifactName: iOSSampleAppNoSymbols
278-
archiveExtension: '.zip'
279-
archiveType: zip
202+
- ${{ if eq(parameters.nameSuffix, 'iOSNativeAOT') }}:
203+
# CoreCLR NativeAOT build
204+
- script: make hello-app TARGET_OS=ios TARGET_ARCH=arm64 BUILD_CONFIG=Release DEPLOY_AND_RUN=false STRIP_DEBUG_SYMBOLS=true
205+
env:
206+
DevTeamProvisioning: '-'
207+
workingDirectory: $(Build.SourcesDirectory)/src/mono/sample/iOS-NativeAOT
208+
displayName: Build HelloiOS NativeAOT sample app STRIP_SYMBOLS=True
209+
- task: PublishBuildArtifacts@1
210+
condition: succeededOrFailed()
211+
displayName: 'Publish binlog'
212+
inputs:
213+
pathtoPublish: $(Build.SourcesDirectory)/src/mono/sample/iOS-NativeAOT/msbuild.binlog
214+
artifactName: iOSNativeAOTArm64StripSymbolsBuildLog
215+
- template: /eng/pipelines/common/upload-artifact-step.yml
216+
parameters:
217+
rootFolder: $(Build.SourcesDirectory)/src/mono/sample/iOS-NativeAOT/bin/ios-arm64/Bundle/HelloiOS/Release-iphoneos/HelloiOS.app
218+
includeRootFolder: true
219+
displayName: iOS Sample App NativeAOT NoSymbols
220+
artifactName: iOSSampleAppNativeAOTNoSymbols
221+
archiveExtension: '.zip'
222+
archiveType: zip
223+
- script: rm -r -f $(Build.SourcesDirectory)/src/mono/sample/iOS-NativeAOT/bin
224+
workingDirectory: $(Build.SourcesDirectory)/src/mono/sample/iOS-NativeAOT
225+
displayName: Clean bindir

eng/pipelines/performance/templates/perf-ios-scenarios-build-jobs.yml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,6 @@ jobs:
3636
postBuildSteps:
3737
- template: /eng/pipelines/performance/templates/build-perf-sample-apps.yml
3838
parameters:
39-
hybridGlobalization: ${{ parameters.hybridGlobalization }}
4039
runtimeType: coreclr
4140

4241
- ${{ if eq(parameters.nativeAot, true) }}:

src/mono/sample/iOS/Makefile

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@ USE_LLVM=true
99
DEPLOY_AND_RUN?=true
1010
APP_SANDBOX?=false
1111
STRIP_DEBUG_SYMBOLS?=false # only used when measuring SOD via build-appbundle make target
12-
HYBRID_GLOBALIZATION?=true
1312
USE_MONO_RUNTIME?=true
1413
AOT?=true
1514

@@ -43,7 +42,6 @@ build-appbundle: clean appbuilder
4342
/p:MonoEnableLLVM=$(USE_LLVM) \
4443
/p:StripDebugSymbols=$(STRIP_DEBUG_SYMBOLS) \
4544
/p:DeployAndRun=false \
46-
/p:HybridGlobalization=$(HYBRID_GLOBALIZATION) \
4745
/p:RunAOTCompilation=$(AOT) \
4846
/p:UseMonoRuntime=$(USE_MONO_RUNTIME) \
4947
/bl

0 commit comments

Comments
 (0)