36af029204
Change all null checking expressions to use 'is null' and 'is not null' instead of '== null' and '!= null'. This was mostly done with sed, so code can probably be improved in many other ways with manual inspection, but that will come over time. Also add code to the autoformat script to automatically fix these issues in the future. |
||
---|---|---|
.. | ||
Assets.xcassets | ||
dotnet | ||
legacy | ||
.gitignore | ||
AppDelegate.cs | ||
Entitlements.plist | ||
Info.plist | ||
Main.cs | ||
Main.storyboard | ||
Makefile | ||
ManagedRuntime.cs | ||
MessageSend.cs | ||
Messaging.cs | ||
NativeArrayPerf.cs | ||
ObjCBridge.cs | ||
ObjectCreation.cs | ||
README.md | ||
TollFreeBridge.cs | ||
ViewController.cs | ||
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.