xamarin-macios/tests/perftest
Rolf Bjarne Kvinge a46afd0147
[tests] Use 'BundledNETCoreAppTargetFrameworkVersion' to specify the .NET version in the project files. (#14666)
This way we don't have to update all these files when moving to .NET 7.
2022-04-06 20:58:20 +02:00
..
Assets.xcassets
dotnet [tests] Use 'BundledNETCoreAppTargetFrameworkVersion' to specify the .NET version in the project files. (#14666) 2022-04-06 20:58:20 +02:00
legacy [corefoundation] Optimize `CFArray` (#12740) 2021-09-16 08:39:16 +02:00
.gitignore
AppDelegate.cs
Entitlements.plist
Info.plist
Main.cs
Main.storyboard
Makefile [dotnet] Rename hardcoded 'net6.0' to use a 'DOTNET_TFM' variable instead. (#14524) 2022-04-01 13:48:09 +02:00
ManagedRuntime.cs [tests] Add perf test for calling Marshal.AllocHGlobal/FreeHGlobal. (#12696) 2021-09-13 16:14:37 +02:00
MessageSend.cs Fix some whitespace issues in various files. (#12399) 2021-08-11 10:06:46 +02:00
Messaging.cs Fix some whitespace issues in various files. (#12399) 2021-08-11 10:06:46 +02:00
NativeArrayPerf.cs [corefoundation] Optimize `CFArray` (#12740) 2021-09-16 08:39:16 +02:00
ObjCBridge.cs Fix some whitespace issues in various files. (#12399) 2021-08-11 10:06:46 +02:00
ObjectCreation.cs Fix some whitespace issues in various files. (#12399) 2021-08-11 10:06:46 +02:00
README.md
TollFreeBridge.cs [corefoundation] Optimize `CFString` creation (#12736) 2022-02-23 20:49:10 +01:00
ViewController.cs Fix some whitespace issues in various files. (#12399) 2021-08-11 10:06:46 +02:00
ViewController.designer.cs
perftest.sln

README.md

Benchmarks

This folder contains a test suite to test performance in Xamarin.iOS/Xamarin.Mac.

There are three variations of the test suite:

  • Legacy mode (Xamarin).

  • .NET Mode (Mono): runs tests in .NET, with MonoVM.

  • .NET Mode (CoreCLR): runs tests using .NET, with CoreCLR.

Running the benchmarks

Run all three variations of the test suite:

make run-perftest

Run each variation:

Legacy mode

make run-perftest-with-legacy

.NET Mode (Mono)

make run-perftest-with-mono

.NET Mode (CoreCLR)

make run-perftest-with-coreclr

Results

At the end of the test run, something like this will be printed:

Log files were stored in xamarin-macios/tests/perftest/output/2021-04-22--21:43:28

and that's where you'll find log files. Console output from the executable is stored as perflog-[timestamp].log, while BenchmarkDotNet results are exported to the results/ subfolder (in json, markdown, csv and html formats).

There's no easy way to compare results across variations or runs (yet), the exported results will have to be examined by a human and compared that way.