Практическое руководство. Слияние нескольких профилей PGO в единый профиль
Обновлен: Ноябрь 2007
Профильная оптимизация (PGO) — это мощный инструмент для создания оптимизированного двоичного кода на основе профильного сценария. Однако как быть в случае приложения, в котором реализуется несколько одинаково важных различных сценариев? Как создать единый сценарий, который может использоваться профильной оптимизацией, из нескольких разных сценариев? В Visual Studio 2005 с этой задачей справляется диспетчер профильной оптимизации (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-файл не указан, диспетчер произведет поиск в локальном каталоге всех файлов, имеющих то же имя, что и PGD-файл, с добавленным восклицательным знаком (!) и произвольными символами. Если в локальном каталоге имеются файлы test.pgd, test!1.pgc, test2.pgc и test!hello.pgc и из локального каталога запускается следующая команда, будет произведено слияние файлов test!1.pgc и test!hello.pgc с файлом test.pgd.
pgomgr /merge test.pgd