SPDConvert

Используйте SPDConvert для подготовки данных профиля образца и управления ими для оптимизации на основе профиля образца (SPGO).

Это средство сопоставляет необработанные образцы оборудования в файлах SPT с структурой кода в SPD. На этом шаге выполняются корреляция выборок, сглаживание потока и выбор параметров размера и скорости, а также создаётся обогащённый SPD-файл со счётчиками выполнения, нанесёнными на граф потока.

Вы можете объединить данные из нескольких источников, таких как тесты лаборатории, внутренний мониторинг и телеметрия рабочей среды в одном преобразовании. Чтобы подчеркнуть важность конкретного сценария, можно указать его SPT-файл несколько раз. Перечисление критического теста SPT три раза эффективно троит его вес.

Это средство работает в трех режимах:

  • импортировать данные .SPT в файл .SPD для сборок /SPGO
  • извлечь встроенный файл .SPD из файла .PDB
  • объединить несколько файлов .SPD из отдельных сеансов профилирования

SPDConvert работает с тремя типами файлов:

  • ETL (журнал трассировки событий) Необработанные события производительности оборудования, записанные xperf
  • SPT (пример трассировки профиля) Упакованные примеры событий, созданные SPTAggregate из файлов ETL
  • SPD (база данных выборочных профилей) Обработанные данные профиля, используемые компилятором при оптимизированной сборке. Вы также можете внедрить файлы SPD в файлы символов PDB во время сборки /spdembed

Syntax

Импортируйте данные SPT в существующий SPD-файл:

SPDConvert [параметры] spdfilesptfile(s)

Извлеките внедренный SPD-файл из PDB:

SPDConvert /extractpdbfilespdfile

Слияние нескольких SPD-файлов в один:

SPDConvert /mergeoutputspdfilespdfile(s)

Параметры

РЕЖИМ ИМПОРТА

параметры
Укажите следующие параметры в режиме импорта:

  • /Режим:<IP|LBR> Выберите режим профиля. Используйте IP-адрес для данных профиля указателя инструкций (по умолчанию) или LBR для данных профиля записи последней ветви.
  • /reset: Сбросьте счётчик до 0. Это действие не учитывает SPT. Используйте этот параметр, чтобы сбросить файл SPD перед импортом новых данных или создать пустой файл SPD, если указанный файл не существует.
  • /sptlist:<Файл> Укажите имена файлов SPT в текстовом файле с одним именем файла на строку.
  • /Сводка Печать сводки файла SPD.
  • /help Отображает справочную информацию.

spdfile
Файл SPD, в который импортируются образцы данных.

sptfiles
Один или несколько файлов SPT для импорта. Файлы SPT создаются SPTAggregate.

РЕЖИМ ИЗВЛЕЧЕНИЯ (/извлечение)

pdbfile
PDB-файл, содержащий встроенный SPD.

spdfile
Выходной SPD-файл, который будет создан.

РЕЖИМ СЛИЯНИЯ (/слияние)

outputspdfile
Выходной SPD-файл, который необходимо создать.

/retire:<N> Установите коэффициент выбытия данных профиля равным N/16, где 0 ≤ N ≤ 16. Значение по умолчанию — 8. Это значение определяет, сколько существующих данных в SPD необходимо удалить при добавлении новых данных SPT. Например, /retire:8 удаляет 8/16 (половина) существующих данных перед добавлением новых данных SPT. Этот параметр взвешивает более новые данные профиля, так как он удаляет половину старых данных. Два наиболее распространенных варианта использования — /retire:0, при котором всем запускам профиля присваивается одинаковый вес, или /retire:16, чтобы учитывались только самые новые данные, поскольку при этом все старые данные удаляются. Используйте /retire:N, чтобы управлять тем, насколько активно SPDConvert снижает значимость старых данных профиля. Эта концепция «carry forward» позволяет обновить профиль на основе существующих данных SPD без необходимости начинать заново с новыми данными профилирования, что требует значительных затрат времени. Эта концепция более подробно рассматривается в руководстве по SPGO — повторное использование сведений SPD в разных сборках.

spdfiles
Один или несколько spD-файлов для слияния.

Замечания

Note

Запустите это средство из командной строки разработчика Visual Studio.

SPDConvert — это основной инструмент преобразования в рабочем процессе SPGO. После сбора трассировки с помощью xperf и преобразования её в файл SPT с помощью SPTAggregate используйте SPDConvert для импорта выборочных данных в файл SPD. Передайте полученный файл SPD компилятору с помощью флага /SPGO для создания оптимизированного двоичного файла.

Используйте /extract, чтобы восстановить SPD-файл, встроенный в PDB во время сборки /SPGO. Используйте /merge для объединения файлов SPD из нескольких сеансов профилирования перед повторной сборкой.

GUID и возраст двоичного файла должны совпадать между SPT и SPD-файлами. Если они не совпадают, SPDConvert сообщает об ошибке "Несовместимая версия SPD". Используйте SPTDump /progid для проверки двоичных идентификаторов в файле SPT и SPDDump /header для проверки файла SPD.

GUID и возраст двоичного файла, записанного в SPD-файле, должны соответствовать SPT-файлу. Чтобы диагностировать эту ошибку, используйте SPTDump /progid для проверки двоичных идентификаторов в SPT-файле, а SPDDump /header — для проверки SPD-файла. По возможности используется действительный файл SPD. Незначительные обновления кода, которые не изменяют поток управления программой, допускаются. Без изменений функции также используют данные для оптимизации. Если вы предоставите допустимый, но в остальном не связанный с задачей SPD, процесс выполнится, но, скорее всего, никакие данные нельзя будет использовать для оптимизации.

Example

В этом примере импортируются данные профиля LBR из SPT-файла в файл SPD:

SPDConvert /mode:LBR sample.spd sample.spt

В этом примере импортируются данные профиля IP с помощью списка файлов SPT:

SPDConvert /mode:IP /sptlist:mysptfiles.txt sample.spd

В этом примере выводится сводка данных профиля в файле SPD:

SPDConvert /summary sample.spd

В этом примере извлекается встроенный SPD из PDB-файла:

SPDConvert /extract sample.pdb sample_extracted.spd

В этом примере выполняется слияние двух файлов SPD из разных запусков профилирования:

SPDConvert /merge combined.spd run1.spd run2.spd

См. также

Учебник: использование примера оптимизации, управляемой профилем (SPGO), для повышения производительности
SPDDump
SPTAggregate
SPTDump