Использование профилей Xperf

В этом разделе показано, как записывать трассировки с помощью профилей. При анализе памяти рассмотрите возможность записи трассировки в файл, так как трассировка событий Windows выполняет запись и не нарушает кэш. При анализе дискового ввода-вывода рассмотрите возможность сохранения трассировки в циклический буфер в памяти. Существуют и другие вопросы, например, нужно ли записывать длинную трассировку, которая не помещается в буфер в памяти, или если вам нужны только последние 5–10 секунд содержимого трассировки.

Процедура

  1. Выберите профиль, например perf! FileIOProfiles.InBuffer и используйте команду, аналогичную приведенному в следующем примере, чтобы отобразить сведения о нем.

    xperf -profiles perf!FileIOProfiles.InBuffer
    

    Эта команда выводит список всех профилей, за которыми следуют сеансы и поставщики в этом профиле:

    Профиль: FileIOProfiles.InBuffer

    Сеансы: FileIOProfiles.InBuffer.Sessions

    Сеанс: FileIOProfiles.InBuffer.Sessions[0]. Ядро[0]

    Сеанс: FileIOProfiles.InBuffer.Sessions[0]. Пользователь[0]

    Поставщики: FileIOProfiles.InBuffer.Providers

    Поставщик: FileIOProfiles.InBuffer.Providers[0]. Ядро[0]

    Поставщик: FileIOProfiles.InBuffer.Providers[0]. Пользователь[0]

  2. Если вы решили использовать файловую трассировку, запустите профиль трассировки InSequentialFile с помощью следующей команды.

    xperf -start perf!GeneralProfiles.InSequentialFile
    

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

  3. Покажите, какие средства ведения журнала InSequentialFile уже запущены для определенного профиля, с помощью следующей команды.

    xperf -profileloggers perf!GeneralProfiles.InSequentialFile
    

    Ответ на эту команду аналогичен приведенному ниже примеру.

    Состояние сеанса для "perf! GeneralProfiles.InSequentialFile":

    "Nt Kernel Logger": выполняется

    PerfCoreUserSession_InSequentialFile : выполняется

  4. Остановите профиль трассировки InSequentialFile , сохраните трассировки, а затем объедините их в файл трассировки, например Merged.etl, с помощью следующей команды.

    xperf -stop perf!GeneralProfiles.InSequentialFile merged.etl
    

    При возникновении проблемы сообщается об ошибке.

  5. Запустите профиль трассировки InSequentialFile , переопределив во время запуска значения MaxBuffers для всех сеансов etW, для которых средства ведения журнала должны быть запущены на 256. Чтобы выполнить это действие, используйте следующую команду.

    xperf -start perf!GeneralProfiles.InSequentialFile -MaxBuffers 256
    

    При возникновении проблемы сообщается об ошибке.

  6. Обновите значения MaxBuffers для активных средств ведения журнала EtW InSequentialFile , указанных в профиле трассировки, с помощью следующей команды.

    xperf -update perf!GeneralProfiles.InSequentialFile -MaxBuffers 256
    

    После выполнения этой команды ответ не отображается.

Профили Xperf