Поделиться через


Практическое руководство. Слияние нескольких профилей PGO в единый профиль

Профильная оптимизация (PGO) — это мощный инструмент для создания оптимизированного двоичного кода на основе профильного скрипта. Однако как быть в случае приложения, в котором реализуется несколько одинаково важных различных скриптов? Как создать единый скрипт, который может использоваться профильной оптимизацией, из нескольких разных скриптов? В Visual Studio с этой задачей справляется диспетчер вероятностного оптимизатора (Pgomgr.exe).

При слиянии профилей используется следующий синтаксис:

pgomgr /merge[:num] [.pgc_files] .pgd_files

где num — необязательный весовой коэффициент, используемый при слиянии. Весовые коэффициенты обычно используются при наличии скриптов, которые являются более важными по сравнению с другими, или скриптов, которые должны выполняться несколько раз.

Примечание

Диспетчер профильной оптимизации не работает с устаревшими профильными данными.Чтобы слияние PGC-файла с PGD-файлом могло быть выполнено, PGC-файл должен быть создан посредством исполняемого файла, который был создан при том же вызове компоновки, что и PGD-файл.

Пример

В следующем примере диспетчер профильной оптимизации добавит файл pgcFile.pgc в файл pgdFile.pgd шесть раз.

pgomgr /merge:6 pgcFile.pgc pgdFile.pgd

В следующем примере диспетчер профильной оптимизации добавит файлы pgcFile1.pgc и pgcFile2.pgc в файл pgdFile.pgd по два раза.

pgomgr /merge:2 pgcFile1.pgc pgcFile2.pgc pgdFile.pgd

Если при запуске диспетчера вероятностного оптимизатора PGC-файл не указан, диспетчер произведет поиск в локальном каталоге всех PGC-файлов, имеющих то же имя, что и данный PGD-файл, с добавленным восклицательным знаком (!) и произвольными символами. Если в локальном каталоге имеются файлы test.pgd, test!1.pgc, test2.pgc и test!hello.pgc и из локального каталога запускается следующая команда, будет произведено слияние файлов test!1.pgc и test!hello.pgc с файлом test.pgd.

pgomgr /merge test.pgd

См. также

Ссылки

Профильная оптимизация