Обучение
Общие сведения о методах сбора данных о производительности профилировщика
В статье описаны методы сбора данных, которые применяются в инструментах Профилировщика производительности Visual Studio.
Выборка собирает статистические данные о работе, выполняемой приложением во время профилирования, и это хорошее место для поиска областей для ускорения приложения. Метод выборки собирает сведения о функциях, которые выполняются в приложении, через заданные интервалы времени. Сбор данных выполняется путем сбора сведений о приложении через регулярный интервал или частоту выборки, например каждую миллисекунда. Собранные данные анализируются для создания модели, в которой было потрачено время в приложении. Если вам нужны точные измерения времени вызова или поиск проблем с производительностью в приложении в первый раз, может потребоваться использовать выборку.
Выборка имеет меньшую точность в количестве вызовов, но низкая стоимость профилировщика и мало влияет на выполнение профилируемого приложения. К числу инструментов Профилировщика производительности, в которых используется метод с выборкой, относится Загрузка ЦП.
После завершения сбора данных средство использования ЦП анализирует захваченные данные и отображает отчет.
Трассировка обеспечивает более подробную информацию о частоте выполнения метода. Если вам нужны точные меры номеров звонков, используйте трассировку. Трассировка может повлиять на производительность кода во время сбора, но выборка имеет лишь небольшую нагрузку. Кроме того, трассировка может быть медленнее для анализа, так как требуется больше времени для просмотра данных после сбора.
Профилирование инструментирования позволяет собирать подробные сведения о работе, выполняемой приложением во время сеанса профилирования. Сбор данных выполняется инструментами, которые либо вставляют код в двоичный файл для получения сведений о времени, либо используют перехватчики обратного вызова для сбора и отправки точных сведений о времени и количестве вызовов во время выполнения приложения. Применение метода инструментирования связано с высокими издержками, если сравнивать его с подходами, основанными на выборке. Средства в профилировщике производительности, использующие инструментирование, включают средства инструментирования и средство выделения объектов .NET.
Значение выборки заключается в том, что она имеет меньше накладных расходов, и по этой причине, скорее всего, будет статистически репрезентативным приложением, работающим в рабочей среде. Значение профилирования инструментирования заключается в том, что можно получить точные счетчики вызовов по количеству вызовов, сколько раз были вызваны функции. Это дает гораздо более подробную информацию, чем обычная выборка, которая может исказить время, затраченное на некоторые сценарии. Например, функции, которые не делают много, но вызываются часто, будут отображаться больше, чем они будут в реальном мире.
При инструментировании каждый вызов функции, выбранный в приложении, аннотирован и инструментирован таким образом, что при вызове он добавляется в трассировку вместе с информацией о вызывающем объекте. При выборке текущий стек вызовов опрашивается из ЦП через интервал, а затем каждый кадр добавляется в трассировку.
Дополнительные ресурсы
Документация
-
Одновременное использование нескольких средств профилировщика - Visual Studio (Windows)
Узнайте, как профилировщик производительности был разработан с идеей, что в одном сеансе можно использовать несколько средств, чтобы помочь в понимании проблем с производительностью.
-
Профилирование ЦП в профилировщике производительности - Visual Studio (Windows)
Узнайте о средстве производительности профилировщика ЦП, которое показывает время и процент, потраченное на выполнение кода в приложениях C++, C#, Visual Basic и JavaScript.
-
Сначала ознакомьтесь с инструментами профилирования - Visual Studio (Windows)
Просмотрите различные средства диагностики, доступные в Visual Studio для профилирования приложений C#, Visual Basic, C++и F#.