Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion eng/performance/maui_scenarios_android.proj
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,7 @@

<ItemGroup>
<PreparePayloadWorkItem Include="@(MAUIAndroidScenario)">
<Command>$(Python) pre.py publish -f $(PERFLAB_Framework)-android -r android-arm64 --self-contained --msbuild=&quot;$(_MSBuildArgs)&quot; --binlog $(PreparePayloadWorkItemBaseDirectory)%(PreparePayloadWorkItem.ScenarioDirectoryName)\%(PreparePayloadWorkItem.ScenarioDirectoryName).$(RunConfigsString).binlog -o $(PreparePayloadWorkItemBaseDirectory)%(PreparePayloadWorkItem.ScenarioDirectoryName)</Command>
<Command>$(Python) pre.py publish -f $(PERFLAB_Framework)-android -r android-arm64 --self-contained -c $(BuildConfig) --msbuild=&quot;$(_MSBuildArgs)&quot; --binlog $(PreparePayloadWorkItemBaseDirectory)%(PreparePayloadWorkItem.ScenarioDirectoryName)\%(PreparePayloadWorkItem.ScenarioDirectoryName).$(RunConfigsString).binlog -o $(PreparePayloadWorkItemBaseDirectory)%(PreparePayloadWorkItem.ScenarioDirectoryName)</Command>
<WorkingDirectory>%(PreparePayloadWorkItem.PayloadDirectory)</WorkingDirectory>
</PreparePayloadWorkItem>
</ItemGroup>
Expand Down
2 changes: 1 addition & 1 deletion eng/performance/maui_scenarios_ios.proj
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@

<ItemGroup>
<PreparePayloadWorkItem Include="@(MAUIiOSScenario)">
<Command>sudo xcode-select -s /Applications/Xcode_26.0.1.app; $(Python) pre.py publish -f $(PERFLAB_Framework)-ios --self-contained -c Release -r ios-arm64 $(NativeAOTCommandProps) --binlog $(PreparePayloadWorkItemBaseDirectory)%(PreparePayloadWorkItem.ScenarioDirectoryName)/%(PreparePayloadWorkItem.ScenarioDirectoryName).binlog -o $(PreparePayloadWorkItemBaseDirectory)%(PreparePayloadWorkItem.ScenarioDirectoryName); cd ../; zip -r %(PreparePayloadWorkItem.ScenarioDirectoryName).zip %(PreparePayloadWorkItem.ScenarioDirectoryName)</Command>
<Command>sudo xcode-select -s /Applications/Xcode_26.0.1.app; $(Python) pre.py publish -f $(PERFLAB_Framework)-ios --self-contained -c $(BuildConfig) -r ios-arm64 $(NativeAOTCommandProps) --binlog $(PreparePayloadWorkItemBaseDirectory)%(PreparePayloadWorkItem.ScenarioDirectoryName)/%(PreparePayloadWorkItem.ScenarioDirectoryName).binlog -o $(PreparePayloadWorkItemBaseDirectory)%(PreparePayloadWorkItem.ScenarioDirectoryName); cd ../; zip -r %(PreparePayloadWorkItem.ScenarioDirectoryName).zip %(PreparePayloadWorkItem.ScenarioDirectoryName)</Command>
<WorkingDirectory>%(PreparePayloadWorkItem.PayloadDirectory)</WorkingDirectory>
</PreparePayloadWorkItem>
</ItemGroup>
Expand Down
158 changes: 158 additions & 0 deletions eng/pipelines/sdk-perf-jobs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -525,6 +525,164 @@ jobs:
${{ each parameter in parameters.jobParameters }}:
${{ parameter.key }}: ${{ parameter.value }}

# Maui Android Debug scenario benchmarks (Mono ProfiledAOT)
- template: /eng/pipelines/templates/build-machine-matrix.yml
parameters:
jobTemplate: /eng/pipelines/templates/run-scenarios-job.yml
buildMachines:
- win-x64-android-arm64-pixel
- win-x64-android-arm64-galaxy
isPublic: false
jobParameters:
runKind: maui_scenarios_android
projectFileName: maui_scenarios_android.proj
channels:
- main
runtimeFlavor: mono
codeGenType: ProfiledAOT
buildConfig: debug
additionalJobIdentifier: Mono_Debug
${{ each parameter in parameters.jobParameters }}:
${{ parameter.key }}: ${{ parameter.value }}

# Maui Android Debug scenario benchmarks (Mono AOT)
- template: /eng/pipelines/templates/build-machine-matrix.yml
parameters:
jobTemplate: /eng/pipelines/templates/run-scenarios-job.yml
buildMachines:
- win-x64-android-arm64-pixel
- win-x64-android-arm64-galaxy
isPublic: false
jobParameters:
runKind: maui_scenarios_android
projectFileName: maui_scenarios_android.proj
channels:
- main
runtimeFlavor: mono
codeGenType: AOT
buildConfig: debug
additionalJobIdentifier: Mono_Debug
${{ each parameter in parameters.jobParameters }}:
${{ parameter.key }}: ${{ parameter.value }}

# Maui Android Debug scenario benchmarks (CoreCLR JIT)
- template: /eng/pipelines/templates/build-machine-matrix.yml
parameters:
jobTemplate: /eng/pipelines/templates/run-scenarios-job.yml
buildMachines:
- win-x64-android-arm64-pixel
- win-x64-android-arm64-galaxy
isPublic: false
jobParameters:
runKind: maui_scenarios_android
projectFileName: maui_scenarios_android.proj
channels:
- main
runtimeFlavor: coreclr
codeGenType: JIT
buildConfig: debug
additionalJobIdentifier: CoreCLR_Debug
${{ each parameter in parameters.jobParameters }}:
${{ parameter.key }}: ${{ parameter.value }}

# Maui Android Debug scenario benchmarks (CoreCLR R2R)
- template: /eng/pipelines/templates/build-machine-matrix.yml
parameters:
jobTemplate: /eng/pipelines/templates/run-scenarios-job.yml
buildMachines:
- win-x64-android-arm64-pixel
- win-x64-android-arm64-galaxy
isPublic: false
jobParameters:
runKind: maui_scenarios_android
projectFileName: maui_scenarios_android.proj
channels:
- main
runtimeFlavor: coreclr
codeGenType: R2R
buildConfig: debug
additionalJobIdentifier: CoreCLR_Debug
${{ each parameter in parameters.jobParameters }}:
${{ parameter.key }}: ${{ parameter.value }}

# Maui Android Debug scenario benchmarks (CoreCLR R2R Composite)
- template: /eng/pipelines/templates/build-machine-matrix.yml
parameters:
jobTemplate: /eng/pipelines/templates/run-scenarios-job.yml
buildMachines:
- win-x64-android-arm64-pixel
- win-x64-android-arm64-galaxy
isPublic: false
jobParameters:
runKind: maui_scenarios_android
projectFileName: maui_scenarios_android.proj
channels:
- main
runtimeFlavor: coreclr
codeGenType: R2RComposite
buildConfig: debug
additionalJobIdentifier: CoreCLR_Debug
${{ each parameter in parameters.jobParameters }}:
${{ parameter.key }}: ${{ parameter.value }}

# Maui Android Debug scenario benchmarks (CoreCLR NativeAOT)
- template: /eng/pipelines/templates/build-machine-matrix.yml
parameters:
jobTemplate: /eng/pipelines/templates/run-scenarios-job.yml
buildMachines:
- win-x64-android-arm64-pixel
- win-x64-android-arm64-galaxy
isPublic: false
jobParameters:
runKind: maui_scenarios_android
projectFileName: maui_scenarios_android.proj
channels:
- main
runtimeFlavor: coreclr
codeGenType: NativeAOT
buildConfig: debug
additionalJobIdentifier: CoreCLR_Debug
${{ each parameter in parameters.jobParameters }}:
${{ parameter.key }}: ${{ parameter.value }}

# Maui iOS Debug Mono scenario benchmarks
- template: /eng/pipelines/templates/build-machine-matrix.yml
parameters:
jobTemplate: /eng/pipelines/templates/run-scenarios-job.yml
buildMachines:
- osx-x64-ios-arm64
isPublic: false
jobParameters:
runKind: maui_scenarios_ios
projectFileName: maui_scenarios_ios.proj
channels:
- main
runtimeFlavor: mono
codeGenType: FullAOT
buildConfig: debug
additionalJobIdentifier: Mono_Debug
${{ each parameter in parameters.jobParameters }}:
${{ parameter.key }}: ${{ parameter.value }}

# Maui iOS Debug Native AOT scenario benchmarks
- template: /eng/pipelines/templates/build-machine-matrix.yml
parameters:
jobTemplate: /eng/pipelines/templates/run-scenarios-job.yml
buildMachines:
- osx-x64-ios-arm64
isPublic: false
jobParameters:
runKind: maui_scenarios_ios
projectFileName: maui_scenarios_ios.proj
channels:
- main
runtimeFlavor: coreclr
codeGenType: NativeAOT
buildConfig: debug
additionalJobIdentifier: CoreCLR_Debug
${{ each parameter in parameters.jobParameters }}:
${{ parameter.key }}: ${{ parameter.value }}

# Maui scenario benchmarks
- ${{ if false }}:
- template: /eng/pipelines/templates/build-machine-matrix.yml
Expand Down
15 changes: 12 additions & 3 deletions scripts/run_performance_job.py
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,8 @@
from performance.logger import setup_loggers
from send_to_helix import PerfSendToHelixArgs, perf_send_to_helix

DEFAULT_BUILD_CONFIG = "Release"

def output_counters_for_crank(reports: list[Any]):
print("#StartJobStatistics")

Expand Down Expand Up @@ -112,7 +114,7 @@ class RunPerformanceJobArgs:
os_version: Optional[str] = None
dotnet_version_link: Optional[str] = None
target_csproj: Optional[str] = None
build_config: str = "Release"
build_config: str = DEFAULT_BUILD_CONFIG
live_libraries_build_config: Optional[str] = None
cross_build: bool = False

Expand Down Expand Up @@ -434,7 +436,8 @@ def get_run_configurations(
runtime_flavor: Optional[str] = None,
ios_llvm_build: bool = False,
ios_strip_symbols: bool = False,
javascript_engine: Optional[str] = None):
javascript_engine: Optional[str] = None,
build_config: Optional[str] = None):

configurations = { "CompilationMode": "Tiered", "RunKind": run_kind }

Expand Down Expand Up @@ -490,13 +493,17 @@ def get_run_configurations(
raise Exception("Runtime flavor must be specified for maui_scenarios_android")
configurations["CodegenType"] = str(codegen_type)
configurations["RuntimeType"] = str(runtime_flavor)
if build_config is not None:
configurations["BuildConfig"] = build_config

# .NET iOS and .NET MAUI iOS sample app scenarios
if run_kind == "maui_scenarios_ios":
if not runtime_flavor in ("mono", "coreclr"):
raise Exception("Runtime flavor must be specified for maui_scenarios_ios")
configurations["CodegenType"] = str(codegen_type)
configurations["RuntimeType"] = str(runtime_flavor)
if build_config is not None:
configurations["BuildConfig"] = build_config

return configurations

Expand Down Expand Up @@ -656,7 +663,8 @@ def run_performance_job(args: RunPerformanceJobArgs):
configurations = get_run_configurations(
args.run_kind, args.runtime_type, args.codegen_type, args.pgo_run_type, args.physical_promotion_run_type,
args.r2r_run_type, args.experiment_name, args.linking_type,
args.runtime_flavor, args.ios_llvm_build, args.ios_strip_symbols, args.javascript_engine
args.runtime_flavor, args.ios_llvm_build, args.ios_strip_symbols, args.javascript_engine,
args.build_config
)

ci_setup_arguments = ci_setup.CiSetupArgs(
Expand Down Expand Up @@ -1007,6 +1015,7 @@ def publish_dotnet_app_to_payload(payload_dir_name: str, csproj_path: str, self_
os.environ["Python"] = agent_python
os.environ["RuntimeFlavor"] = args.runtime_flavor or ''
os.environ["CodegenType"] = args.codegen_type or ''
os.environ["BuildConfig"] = args.build_config or DEFAULT_BUILD_CONFIG

# TODO: See if these commands are needed for linux as they were being called before but were failing.
if args.os_group == "windows" or args.os_group == "osx":
Expand Down
Loading