Я хотел бы отследить производительность в мобильном приложении c #, чтобы узнать количество времени, необходимое для некоторых длительных методов. Цель состоит в том, чтобы узнать производительность на уровне методов.
Эта трассировка будет решена во время выполнения.
Первая идея, которая пришла, состоит в том, чтобы поддерживать глобальную переменную "doWeHaveToTrace", проверять ее каждый раз, когда вызывается потенциальный отслеживаемый метод, и отслеживать ее, если эта переменная имеет значение true.
И в этом случае я, вероятно, использовал бы Logger или TraceListener для записи информации трассировки в файл.
Но я думаю, что этот механизм довольно тяжелый, потому что переменная должна проверяться в каждом методе, а вызовы регистратора должны кодироваться.
Я также думал о программировании аспектов (вставьте код трассировки в методы before () и after ()), но я не думаю, что внутри этого проекта можно разрешить программирование аспектов.
Так что мне было интересно, есть ли другие хорошие механизмы, которые могли бы обеспечить такое отслеживание производительности? Можно ли отследить целый метод? И решить остановить или возобновить трассировку во время выполнения?
Надеюсь, я был чист,
Спасибо