Perfview-это бесплатный инструмент анализа производительности, который помогает изолировать процессору и проблемы с производительностью, связанные с памятью. Это инструмент Windows, но он также имеет некоторую поддержку для анализа данных, собранных на машинах Linux. Он работает для широкого спектра сценариев, но имеет ряд специальных функций для изучения проблем с производительностью в коде, написанном для времени выполнения .NET.
Если вы не знакомы с Perfview, есть видео -уроки Perfview. Кроме того, блог Вэнса Моррисона дает обзор и начало работы информации.
Пожалуйста, смотрите страницу загрузки Perfview для ссылки и инструкций для загрузки текущей версии Perfview.
Perfview требует .NET Framework 4.7.2 или более поздней версии, что широко доступно для всех поддерживаемых версий Windows.
Perfview построен на библиотеке под названием Microsoft.diagnostics.tracing.traceevent, в которой знает, как собирать и анализировать трассировку событий для данных Windows (ETW) и EventPipe (.net Core). Таким образом, если есть какая -либо информация, которую Perfview собирает и процессы, которые вы хотели бы манипулировать собой программно, вы, вероятно, были бы заинтересованы в документации библиотеки TraceEvent
Посмотрите документ сценария, чтобы определить, какой выбор является лучшим выбором для того, что вы пытаетесь сделать.
Руководство пользователя Perfview является частью самого приложения. Кроме того, вы можете щелкнуть ссылку на руководство пользователей, чтобы увидеть исходный файл GitHub HTML, отображаемый в вашем браузере. Вы также можете просто загрузить Perfview, используя приведенные выше инструкции и выбрать элемент меню «Руководство пользователя».
Если у вас есть вопрос о Perfview, ваша первая реакция должна заключаться в поиске руководства пользователей (справка -> Руководство пользователя) и посмотрите, сможете ли вы уже найти ответ. Если это не работает, вы можете задать вопрос, создав новую проблему Perfview. Укажите свой вопрос кратко в названии, и, если необходимо, дайте подробную информацию в организме проблемы, существует проблема проблемы, называемой «Вопрос», который вы должны использовать, который также отмечает ваш вопрос как вопрос, а не какой -то отчет об ошибках. Если вопрос зависит от конкретного трассировки (*.etl.zip file), вы можете перетащить этот файл в проблему, и он будет загружен. Это позволяет тем, кто следит за проблемами, воспроизводить вашу среду и давать гораздо более подробные и полезные ответы.
Обратите внимание, что после ответа на ваш вопрос, если проблема, вероятно, будет обычной, вы должны решительно рассмотреть возможность обновления документации, чтобы включить информацию. Документация - это почти один файл https://github.com/microsoft/perfview/blob/main/src/perfview/supportfiles/usersguide.htm. Вам нужно будет клонировать репозиторий и создать запрос на вытягивание (см. OpenSourceGitWorkFlow для инструкций для настройки и создания запроса на вытяжение.
Сообщение об ошибках работает почти так же, как и задание вопроса. Весьма вероятно, что вы захотите включить файл *.etl.zip, необходимый для воспроизведения проблемы, а также любые шаги и полученное нежелательное поведение.
Если вы просто хотите провести расследование производительности, вам не нужно создавать Perfview самостоятельно. Просто используйте тот, который на странице загрузки Perfview. Однако, если вы хотите новые функции или просто хотите внести свой вклад в Perfview, чтобы сделать его лучше (см. Проблемы для вещей, которые хотят люди), вы можете сделать это, следуя остальной части этих инструкций.
Единственный инструмент, необходимый для создания Perfview, - это Visual Studio 2022. Сообщество Visual Studio 2022 может быть загружено бесплатно и имеет все, что вам нужно, чтобы получить Perfview из GitHub, построить и проверить его. Мы ожидаем, что вы скачите Visual Studio 2022 Community Edition, если у вас еще нет Visual Studio 2022.
В вашей установке Visual Studio вам необходимо убедиться, что у вас установлены следующие рабочие нагрузки и компоненты:
Файл .vsconfig включен в корень репозитория, который можно использовать для установки необходимых компонентов. При открытии решения в Visual Studio он побудит вас установить любые компоненты, которые, по его мнению, отсутствуют в вашей установке. В качестве альтернативы, вы можете импортировать .vsconfig в установщике Visual Studio.
Если вы получите какие-либо ошибки, компиляционные проекты EtwClrCompiler, это, вероятно, потому, что у вас либо не установлен SDK Windows 10, либо у вас не установлены спектр LIBS. Пожалуйста, обратитесь к разделу устранения неполадок для получения дополнительной информации.
Первым шагом в начале работы с исходным кодом Perfview является клонирование репозитория Perfview Github. Если вы уже знакомы с тем, как работает поддержка GIT, GitHub и Visual Studio 2022, то вы можете пропустить этот раздел. Однако, если нет, то настройка местного репозитория GitHub с помощью документа Visual Studio 2022 приведет вас через основы этого. Все это предполагает, что у вас установлен Visual Studio 2022.
Perfview разработан в Visual Studio 2022 с использованием функций через C# 7.3.
Файл решения - perfview.sln. Откроет этот файл в Visual Studio (или дважды щелкнув по нему в Explorer Windows) и выберет его решение Build -> Build. Вы также можете построить версию, не относящуюся к делу, из командной строки, используя msbuild или файл build.cmd на основе репозитория. Сборка следует за стандартными конструкциями Visual Studio, и полученный файл perfview.exe заканчивается в src/perfview/bin/ buildtype /projectfview.exe. Вам нужно только развернуть этот EXE, чтобы использовать его.
Решение состоит из нескольких проектов, представляющих поддержку DLL и основной EXE. Чтобы запустить Perfview в отладчике , вам нужно убедиться, что «запуск проекта» устанавливается на проект «Perfview», чтобы он запустил основной EXE. Если проект Perfview в Explorer Solution (справа) не является жирным шрифтом, щелкните правой кнопкой мыши проект Perfview и выберите «Установить как стартап -проект». После того, как вы делаете это «начать отладку» (F5).
Вы захотите развернуть «релиз», а не версию «отладки» Perfview. Таким образом, сначала установите конфигурацию сборки на «Выпуск» (текстовое окно на верхней панели инструментов или щелкните правой кнопкой мыши на файле .SLN -> Configuration Manager -> Active Solution Configururation). Следующая сборка (Build-> Build Solution (Ctrl-Shift-B)). Результатом будет то, что в каталоге SRC perfview bin net462 Release будет, среди прочего, Perfview.exe. Этот файл - все, что вам нужно развернуть. Просто скопируйте его туда, где вы хотите развернуть приложение.
Одна из необычных вещей в Perfview заключается в том, что он включает в себя свои поддержки DLL в сам EXE, и они распаковываются при первом запуске. Это означает, что в сборке есть сложные зависимости, которые не являются типичными. Вы увидите ошибки, что определенные DLL не могут быть найдены, если в сборке были проблемы с сборкой. Как правило, вы можете исправить это, просто выполнив обычную (неразмерную) сборку, поскольку отсутствующий файл будет присутствовать из последней компиляции. Если это не исправляет, посмотрите, действительно ли DLL искат (если это так, то восстановление должно это исправить). Это может иметь смысл спуститься по проектам один за другим и построить их индивидуально, чтобы увидеть, какой из них терпит неудачу «первым».
Еще одна необычная вещь о Perfview заключается в том, что он включает механизм расширения, дополненный образцами. Этот механизм расширений - это «глобальный» проект (называемый этим, потому что это глобальное расширение, чьи команды не имеют явного «масштаба») и необходимо ссылаться на Perfview для разрешения некоторых из ее ссылок. Таким образом, вы получите много «не найденных» проблем в «глобальном» проекте. Их можно игнорировать, пока вы не получите каждую другую часть сборки.
Одним из инвариантов репо является то, что если вы используете Visual Studio 2022 и просто синхронизируете и создаете файл perfview.sln, он должен «просто работать». Если этого не произойдет, и приведенный выше совет не помогает, тогда нам нужно либо исправить репо, либо обновить советы выше. Таким образом, разумно открыть проблему GitHub. Если вы сделаете это, цель состоит в том, чтобы решить проблему, что означает, что вы должны вложить достаточно информации в проблему для этого. Это включает в себя именно то, что вы пробовали, и каковы были сообщения об ошибках.
Вы также можете создать Perfview из командной строки (но вам все еще нужно установлено Visual Studio 2022). Это двухэтапный процесс. Сначала вы должны восстановить все необходимые пакеты Nuget, затем вы делаете саму сборку. Чтобы сделать это:
Если вы получите ошибку «MSB8036: версия Windows SDK 10.0.17763.0 не была найдена», или вы получите ошибку «Assert.h», или, честно говоря, любая ошибка, связанная с созданием DLL ETWClrProfiler, вы должны убедиться, что у вас установлена Windows 10 SDK. К сожалению, эта библиотека, как правило, больше не установлена в Visual Studio, если вы явно ее не просите. Чтобы исправить его запуск установщика Visual Studio, измените установку, а затем посмотрите под разработку настольного компьютера C ++ и убедитесь, что выбрана опция Windows SDK 10.0.17763.0. Если нет, выберите его и продолжайте. Затем попробуйте снова построить Perfview.
Если вы получите ошибку «MSB8040: для этого проекта требуются библиотеки, смягченные спектром», измените установку Visual Studio, чтобы убедиться, что у вас есть «MSVC V143-против 2022 C ++ X64/X86, установленные компонентами Spectre Spectre.
Perfview имеет ряд *.test Projects, которые имеют автоматические тесты. Их можно запустить в Visual Studio, выбрав тест -> run -> All Tests Menu. Для наиболее тщательных результатов (и, конечно, если вы собираетесь отправить изменения), вам необходимо запустить эти тесты с помощью отладочной сборки продукта (см. Текстовое окно на верхней панели инструментов, в нем говорится «отладка» или «релиз»). Если тесты не сняты, вы можете щелкнуть правой кнопкой мыши на неудачный тест и выбрать элемент контекстного меню «отладки», чтобы запустить тест в рамках отладчика, чтобы выяснить, что пошло не так.
В этом хранилище используется Azure DevOps для автоматического создания и тестирования запросов на вытягивание, что позволяет сообществу легко просматривать результаты сборки. Здесь отражается сборка и статус - статус сборки Azure DevOps в основной ветви.
️ Сборки, произведенные Azure DevOps CI, не считаются официальными сборками Perfview и не подписаны или иным образом подтверждены для безопасности или безопасности каким -либо образом. Эта интеграция сборки предоставляется в качестве удобства для участников сообщества, но не одобрена Microsoft и не считается официальным каналом выпуска. Информацию о официальных сборках см. Страницу загрузки Perfview.
Вы можете получить большую ценность из базы исходного кода, просто имея возможность создавать код самостоятельно, отлаживать через него или сделать локальную, специализированную функцию, но реальная сила программного обеспечения с открытым исходным кодом происходит, когда вы вносите обратно в базу общего кода и, таким образом, помогаете сообществу в целом. Хотя мы поощряем это, это требует значительно больших усилий с вашей стороны . Если вы заинтересованы в активизации, см. Руководство по взносу Perfview и стандарты кодирования Perfview, прежде чем начать.
Код разбит на несколько основных разделов: