Практическое руководство. Слияние нескольких профилей PGO в единый профиль
Профильная оптимизация (PGO) — это отличное средство для создания оптимизированных двоичных файлов на основе сценария, для которого применяется профилирование. Но что если у вас есть приложение с несколькими важными, но разными сценариями? Как создать один профиль, который профильная оптимизация может использовать в нескольких различных сценариях? В Visual Studio эту задачу решает диспетчер профильной оптимизации, pgomgr.exe.
Для слияния профилей используется следующий синтаксис:
pgomgr /merge[:num] [.pgc_files] .pgd_files
где num
— необязательный весовой коэффициент, используемый для PGC-файлов, добавленных этим слиянием. Весовые коэффициенты обычно используются, если существуют сценарии, более важные по сравнению с другими, или сценарии, которые должны выполняться несколько раз.
Примечание.
Диспетчер профильной оптимизации не работает с устаревшими данными профиля. Чтобы можно было объединить PGC-файл с PGD-файлом, PGC-файл должен создаваться исполняемым файлом, который был создан с помощью вызова ссылки, создавшего PGD-файл.
Примеры
В этом примере диспетчер профильной оптимизации добавляет pgcFile.pgc в pgdFile.pgd шесть раз:
pgomgr /merge:6 pgcFile.pgc pgdFile.pgd
В этом примере диспетчер профильной оптимизации добавляет pgcFile1.pgc и pgcFile2.pgc в pgdFile.pgd два раза для каждого PGC-файла:
pgomgr /merge:2 pgcFile1.pgc pgcFile2.pgc pgdFile.pgd
Если диспетчер профильной оптимизации запущен без аргументов PGC-файла, он ищет в локальном каталоге все PGC-файлы с тем же базовым именем, что и PGD-файл, за которым следует восклицательный знак (!), а затем один или несколько произвольных символов. Например, если в локальном каталоге есть файлы test.pgd, test!1.pgc, test2.pgc и test!hello.pgc, и следующая команда выполняется из локального каталога, то pgomgr объединяет test!1.pgc и test!hello.pgc в test.pgd.
pgomgr /merge test.pgd