Оптимизация параметров Профилировщика

Окно профилировщика производительности и средств диагностики в Visual Studio имеет множество различных параметров, влияющих на общую производительность инструментов. Изменение некоторых параметров может привести к быстрому выполнению анализа или появлению дополнительного времени ожидания при обработке результатов в средствах. Ниже приведена сводка по определенным параметрам и их влиянию на производительность.

Параметры символов

Параметры символов, доступные в настройках отладчика (Отладка > Параметры > Символы или Инструменты > Параметры > Отладка > Символы), значительно влияют на время, затрачиваемое на формирование результатов в средствах. Включение серверов символов или использование переменной _NT_SYMBOL_PATH предписывает профилировщику запрашивать символы для каждого загруженного модуля в отчете. В настоящее время профилировщик всегда автоматически загружает все символы, независимо от предпочтения автоматической загрузки символов.

Symbol loading page

Ход выполнения загрузки символов можно увидеть в окне Вывод под заголовком Средства диагностики.

Symbol loading progress

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

Показать внешний код

Во многих из средств Профилировщика производительности и окна Средства диагностики используется концепция пользовательского кода (в противопоставлении внешнему коду). Пользовательский код — это любой код, созданный открытым решением или открытой рабочей областью. Внешним кодом является любой другой код. Сохраняя отключенный параметр "Показать внешний код" или "Показать только мой код", средства позволяют средствам агрегировать внешний код на один кадр первого уровня, значительно уменьшая объем обработки, необходимый для отображения результатов. Это позволит пользователям увидеть, что во внешнем коде привело к замедлению, и сведет к минимуму обработку данных. По возможности оставьте отображение внешнего кода отключенным и убедитесь, что у вас есть решение или рабочая область, открытая для анализа диагсессии.

Длительность трассировки

Профилирование меньшей длительности приводит к меньшему объему данных, что ускоряет анализ. Как правило, рекомендуется ограничить трассировку не более чем пятью минутами данных о производительности. Некоторые средства, такие как средство использования ЦП, позволяют приостановить сбор данных во время выполнения средства, чтобы ограничить объем собранных данных в сценарии, который вы хотите проанализировать.

Частота выборки

Некоторые средства, такие как Загрузка ЦП и NET Object Allocation (Распределение объектов .NET), позволяют настроить частоту выборки. Увеличение этой частоты выборки позволяет более точно измерять, но увеличивает объем созданных данных. Если не изучается конкретная проблема, для этого параметра рекомендуется оставить значение по умолчанию.

Diag Hub Properties Page

Diag Hub Properties Page

Настройка папки коллекции

Профилировщик Visual Studio использует каталог с нуля коллекции для хранения трассировок производительности перед сохранением или отключением карта. По умолчанию профилировщик использует временный каталог. Однако можно указать другой каталог с нуля, сначала открыв окно средств диагностики (отладка>windows>Show Diagnostic Tools), а затем выбрав "Выбрать инструменты> Параметры> General>Scratch Directory.

Screenshot of profiler scratch directory.