.net core perf profiler через код - PullRequest
0 голосов
/ 11 июня 2018

Я разработал промежуточное программное обеспечение, которое запускает секундомер перед вызовом следующего и останавливается, когда ответ становится доступным. После этого я регистрирую истекшее время.

Это все хорошо.Но это не дает мне разбивки, то есть: во время вызова какие вызовы методов заняли сколько?например: если у меня есть 4 вызова метода в запросе, я хотел бы знать продолжительность каждого из них.

Я полагаю, что промежуточного программного обеспечения недостаточно для этой цели, без необходимости размещать декораторы повсюду, как я могу это сделать?

Спасибо.

1 Ответ

0 голосов
/ 18 июня 2018

Возможно, вам придется вручную обрабатывать наиболее интересные фрагменты кода.

Несмотря на то, что существуют решения для инъекции IL (см. Страницу MSIL Injection на сайте PostSharp), я не думаю, что возможно внедрить код в произвольных местах без изменения существующей кодовой базы,Тем не менее, во многих случаях относительно легко оборудовать большую часть существующего кода (учитывая, что он достаточно хорошо разделен на модули) с использованием декораторов.Например, добавьте пользовательское профилирование DelegatingHandler в HttpClient или используйте профилирование SqlConnection factory.

Для проверки иерархии вызовов и задержки вы можете использовать MiniProfiler , это встроенные декораторыи RenderPlainText() метод.Или вы можете использовать библиотеку Metrics.NET для проверки показателей, связанных с пропускной способностью, таких как гистограмма и счетчик.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...