Используйте переменную окружения debug.mono.profile
, чтобы включить моно-профилировщик.
Системное свойство debug.mono.profile включает профилировщик. Он эквивалентен и использует те же значения, что и параметр mono --profile. (Для получения дополнительной информации см. Справочную страницу mono (1).)
Быстрый пример Android:
adb shell setprop debug.mono.profile "log:calls,alloc,output=/sdcard/Download/output.mlpd,maxframes=8,calldepth=100"
// Exercise your app...
adb pull /sdcard/Download/prof.mlpd ~/Desktop/
adb shell rm /sdcard/Download/prof.mlpd
adb shell setprop debug.mono.profile ""
// View the results:
`which mprof-report` ~/Desktop/prof.mlpd
Примечание : .mlpd
файлы могут стать огромными (не только мегабайтами, но и размером 10 с / 100 гигабайт в зависимости от того, какие опции вы используете с профилировщиком «log» убедитесь, что на вашем устройстве доступно хранилище (Xamarin Profiler передает данные журнала по TCP и, следовательно, не имеет этой проблемы)
! Примечание! : Если вы пытаетесь сохранить файл mlpd вне папки с песочницей вашего приложения, Mono зарегистрирует ошибку под тегом mono-prof
. В этом случае вам необходимо предоставить разрешение на запись для вашего приложения (то есть через манифест Android и разрешения времени выполнения) из самого приложения.
[mono-prof] Could not create log profiler output file '/sdcard/Download/output.mlpd': Permission denied
Среда Android:
Среда iOS:
Xamarin Profiler (делает все это для вас и имеет приятный графический интерфейс):