Анализатор профилей в Visual Studio 2008 - не хватает времени - PullRequest
0 голосов
/ 01 марта 2010

Я запустил профилировщик Visual Studio 2008 для своего приложения ASP.NET и получил следующий набор результатов.

CURRENT FUNCTION                                      TIME (msec)
---------------------------------------------------|--------------
Data.GetItem(params)                               |   10,158.12
---------------------------------------------------|--------------

Functions that were called by Data.GetItem(params)    TIME (msec)
---------------------------------------------------|--------------
Model.GetSubItem(params)                           |     0.83
Model.GetSubItem2(params)                          |     0.77
Model.GetSubItem3(params)                          |     0.76
etc.

Проблема, с которой я сталкиваюсь, состоит в том, что сумма функций, вызываемых Data.GetItem (params), не суммируется до общей суммы 10 158,12 мс . Это заставило бы меня поверить, что основная часть времени уходит на выполнение кода в этом методе.

У меня вопрос ... предоставляет ли Visual Studio способ анализа самого метода, чтобы я мог видеть, какие разделы кода занимают больше всего времени? если нет, есть ли какие-либо рекомендуемые инструменты для этого? или я должен начать писать свои собственные сценарии синхронизации?

Спасибо

Ответы [ 3 ]

2 голосов
/ 02 марта 2010

Профилировщик VS 2008 не поддерживает профилирование на уровне блоков, но я считаю, что Профилировщик Red Gate поддерживает.

1 голос
/ 04 марта 2010

Не концентрируйтесь на синхронизации кода . Это нисходящий подход.

Снизу вверх гораздо эффективнее. Этот метод прекрасно работает в Visual Studio.

0 голосов
/ 11 июня 2010

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

...