Бөлісу құралы:


ProfileOptimization Класс

Определение

Повышает производительность запуска доменов приложений в приложениях, требующих JIT-компилятора jIT, выполняя фоновую компиляцию методов, которые, скорее всего, будут выполняться на основе профилей, созданных во время предыдущей компиляции.

public ref class ProfileOptimization abstract sealed
public static class ProfileOptimization
type ProfileOptimization = class
Public Class ProfileOptimization
Наследование
ProfileOptimization

Комментарии

Замечание

  • Для оптимизации профиля требуется многоядерный компьютер. Методы игнорируются на других компьютерах.
  • Этот API сокращает время запуска. Эти улучшения дополняют оптимизацию динамического профилирования (Dynamic PGO), что улучшает оптимизацию среды выполнения на основе наблюдаемых шаблонов выполнения.

Каждый раз, когда вы инициируете оптимизацию профиля в домене приложения, считывается профиль, созданный во время предыдущего использования. Сведения в профиле используются для управления фоновой компиляцией, определяя методы, которые, скорее всего, будут выполняться во время запуска. На многоядерных компьютерах это повышает вероятность того, что метод уже компилируется по времени, чтобы основной поток приложения не должен вызывать компилятор JIT.

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

Профили оптимизации не ограничены запуском домена приложения. Их можно использовать для любого действия, требующего интенсивного использования компилятора JIT. Вы можете поддерживать несколько профилей для домена приложения, чтобы каждая такая активность была собственным профилем.

Чтобы использовать профили оптимизации в домене приложения, необходимо вызвать SetProfileRoot метод и указать папку, в которой хранятся профили. Папка уже должна существовать. Чтобы начать использование профиля, вызовите StartProfile метод и укажите имя файла профиля. Если файл не был записан ранее, он создается при первом использовании. Преимущество производительности при первом создании профиля отсутствует.

Оптимизация профиля не изменяет порядок выполнения методов. Методы не выполняются в фоновом потоке; Если метод компилируется, но никогда не вызывается, он просто не используется. Если файл профиля поврежден или не может быть записан в указанную папку (например, так как папка не существует), выполнение программы продолжается без профилирования оптимизации.

Методы

Имя Описание
SetProfileRoot(String)

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

StartProfile(String)

Запускает JIT-компиляцию методов, записанных ранее в указанном файле профиля, в фоновом потоке. Запускает процесс записи текущего метода, который позже перезаписывает указанный файл профиля.

Применяется к