Что я делал, так это то, что с помощью экземпляра секундомера я измеряю каждый вызываемый метод, помещаю их в словарь, а затем, используя метод TrackEvent, отправляю всю информацию вместе. Возможно, он не скажет вам время, необходимое для рендеринга, но даст вам хорошее представление о том, какой метод выполняется дольше всего.
У вас будет что-то вроде этого:
protected override void OnCreate(Bundle savedInstanceState)
{
TabLayoutResource = Resource.Layout.Tabbar;
ToolbarResource = Resource.Layout.Toolbar;
base.OnCreate(savedInstanceState);
var dictionary = new Dictionary<string, string>();
var totalTime = 0L;
var stopWatch = new Stopwatch();
stopWatch.Start();
UserDialogs.Init(() => this);
stopWatch.Stop();
totalTime += stopWatch.ElapsedMilliseconds;
dictionary.Add("UserDialogs.Init(() => this); (ms)", stopWatch.ElapsedMilliseconds.ToString());
stopWatch.Restart();
global::Xamarin.Forms.Forms.Init(this, savedInstanceState);
stopWatch.Stop();
totalTime += stopWatch.ElapsedMilliseconds;
dictionary.Add("global::Xamarin.Forms.Forms.Init(this, savedInstanceState); (ms)", stopWatch.ElapsedMilliseconds.ToString());
stopWatch.Restart();
LoadApplication(new App(new AndroidInitializer()));
stopWatch.Stop();
totalTime += stopWatch.ElapsedMilliseconds;
dictionary.Add("LoadApplication(new App(new AndroidInitializer())) (ms)", stopWatch.ElapsedMilliseconds.ToString());
dictionary.Add("Total Startup Time", totalTime.ToString());
Analytics.TrackEvent("Load completed", dictionary);
}