Compartilhar via


ProfileOptimization Classe

Definição

Melhora o desempenho de inicialização de domínios de aplicativos em aplicativos que exigem o compilador JIT (just-in-time) executando a compilação em segundo plano de métodos que provavelmente serão executados, com base em perfis criados durante compilações anteriores.

public ref class ProfileOptimization abstract sealed
public static class ProfileOptimization
type ProfileOptimization = class
Public Class ProfileOptimization
Herança
ProfileOptimization

Comentários

Observação

  • A otimização de perfil requer um computador multicore. Os métodos são ignorados em outros computadores.
  • Essa API reduz o tempo de inicialização. Essas melhorias são complementares à otimização dinâmica guiada por perfil (PGO Dinâmico), que melhora a otimização de runtime com base nos padrões de execução observados.

Sempre que você inicia a otimização de perfil em um domínio de aplicativo, o perfil que foi criado durante o uso anterior é lido. As informações no perfil são usadas para orientar a compilação em segundo plano identificando os métodos que provavelmente serão executados durante a inicialização. Em computadores multicore, isso aumenta as chances de um método já ser compilado no momento em que for necessário para que o thread principal do aplicativo não precise chamar o compilador JIT.

O arquivo de perfil é substituído em cada uso, portanto, ele sempre contém as informações mais recentes sobre quais métodos são usados durante a inicialização.

Os perfis de otimização não estão restritos à inicialização do domínio do aplicativo. Eles podem ser usados para qualquer atividade que exija uso intenso do compilador JIT. Você pode manter vários perfis para um domínio de aplicativo para que cada atividade desse tipo tenha seu próprio perfil.

Para usar perfis de otimização em um domínio de aplicativo, você deve chamar o SetProfileRoot método e especificar a pasta em que os perfis são armazenados. A pasta já deve existir. Para começar a usar um perfil, chame o StartProfile método e especifique o nome do arquivo do perfil. Se o arquivo não tiver sido gravado anteriormente, ele será criado no primeiro uso. Não há nenhum benefício de desempenho na primeira vez que um perfil é criado.

A otimização de perfil não altera a ordem na qual os métodos são executados. Os métodos não são executados no thread em segundo plano; se um método for compilado, mas nunca chamado, ele simplesmente não será usado. Se um arquivo de perfil estiver corrompido ou não puder ser gravado na pasta especificada (por exemplo, como a pasta não existe), a execução do programa continuará sem a criação de perfil de otimização.

Métodos

Nome Description
SetProfileRoot(String)

Habilita a criação de perfil de otimização para o domínio do aplicativo atual e define a pasta em que os arquivos de perfil de otimização são armazenados. Em um computador de núcleo único, o método é ignorado.

StartProfile(String)

Inicia a compilação just-in-time (JIT) dos métodos que foram previamente registrados no arquivo de perfil especificado, em um thread em segundo plano. Inicia o processo de gravação do uso do método atual, que posteriormente substitui o arquivo de perfil especificado.

Aplica-se a