Profile iOS game performance using Xamarin profiler

I need to profile the iOS version of my game as I’ve spotted some patchy performance at times and need to find out what is happening.

Has anyone used the new Xamarin profiler to do this? Or know of another tool I can use, preferably on device, but on the simulator would do.


Just use Instruments in Xcode. The OpenGL ES tools work fine and you can drill down to individual function calls.

Any tips on how to use these tools or decent tutorials? Ideally I’m looking for something to give me the Xamarin/Monogame method being called and how long it’s taking in total - something like the Redgate ANTS profiler on the PC.

(I admit - never used Xcode, only ever worked on Mac/iOS via Xamarin and Monogame)


Instruments does just that. Here’s a general guide to it:

Nope, still struggling…

I’ve got the app running in the iOS simulator, and I’ve fired up Instruments from Xcode. What template do I need to use to get the output of what method calls are taking how long, how do I attach the Instruments to the iOS simulator and monitor the flow of the game (methods called and processing time), and how do I then translate this back to my Monogame code (I’m assuming that Instruments will return Xcode method calls etc.)

I’ve spent some time with the documentation, but can’t figure out where to start.


First off, use a real device for profiling.

What you have to do is deploy the app, then launch Instruments, use the “OpenGL ES Driver”. Add another instrument that monitors the CPU/GPU usage (I don’t recall the name). Start the application from Instrument and do some stuff in the game. Select the cpu/gpu instrument and at the bottom of Instruments you will see the call tree. You have to expand it lots of times to reach the MonoGame code, but at the bottom you will find all your calls. It should look something like this:

(this is not the actual picture, just found it online)