DotTrace не ясно большое количество времени выполнения пользовательского кода - PullRequest
0 голосов
/ 17 декабря 2018

В своей работе я использовал DotTrace для анализа медлительности, которую испытал один из наших клиентов в нашем приложении WPF для настольных ПК.Я использовал его прежде, чтобы сделать это, что привело к выводу, что база данных работает медленнее, и затем мы могли бы найти решение.

На этот раз, однако, я вижу 75% времени выполнения в собственном коде и нетявная медлительность в пользовательском коде.Я обыскал некоторых вокруг и увидел несколько других людей с тем же вопросом.Ответ был либо нормальным (предыдущий снимок также занимал лишь крошечную часть времени выполнения в пользовательском коде, что кажется нормальным), либо анализировать его дальше, если вы установите флажок «Собирать собственные выделения» при создании снимка(К сожалению, я не проверял).

Если я проверяю только пользовательский код, большая часть времени выполнения находится в DLL-библиотеках DevExpress, которые являются сторонними компонентами пользовательского интерфейса.Не могли бы вы тогда сказать, что это движется в сторону медлительности, связанной с аппаратным обеспечением (см. Часть кода пользователя снимка ниже)?

enter image description here

Я использовал опцию Временной шкалы, чтобысоздать снимок.

Мои вопросы:

  • Поскольку снимок не показывает много времени в истинном пользовательском коде (исключая компоненты DevExpress), могу ли я заключить, что этомедлительность не вызвана неэффективностью нашего кода?
  • Могу ли я что-нибудь отличить от части снимка с собственным кодом (см. скриншот ниже)?
  • Удобно ли использовать Timeline для этого случая илиодин из других вариантов сэмплирования более понятен?
  • Как мне поступить в таком случае, чтобы приблизиться к источнику медлительности?

Заранее спасибо за помощь!

Себастьян

Собственная часть кода снимка: enter image description here

1 Ответ

0 голосов
/ 18 декабря 2018

Собственная часть всегда вызывается управляемым кодом.

В этом случае временная шкала не работает.Здесь вы отфильтровали только исходную часть.

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

...