Compilação “ahead-of-time” (ReadyToRun) no .NET Core 3

Em um post anterior, falamos dos potenciais ganhos de performance resultantes da opção de compilação em camadas, fornecida pelo JIT. Na prática, o JIT compila um mesmo código, múltiplas vezes, gerando, em cada nova compilação, um código ainda melhor que o anterior.

Além dessa nova opção, há também a alternativa de pedirmos que o compilador gere código nativo, junto com a compilação para a Intermediate Language (naquele mesmo processo que executamos no Visual Studio, por exemplo, e não durante a execução da aplicação). Essa opção ficou conhecida como ReadyToRun.

A compilação ReadyToRun pode ser ativada diretamente no arquivo de configuração.

<PropertyGroup>
  <PublishReadyToRun>true</PublishReadyToRun>
</PropertyGroup>

O arquivo executável gerado ficará signficativamente maior. A razão para isso é que, por motivos de compatibilidade, tanto o código nativo quanto o IL vão estar no arquivo. Ou seja, além do tamanho do executável gerado pelo processo tradicional (somente com Intermediate Language), serão acrescidos os bytes relativos ao código nativo. Entretanto, o tempo para inicialização será muito menor.

Outro ponto importante de atenção é que, por razões óbvias, sua aplicação precisará ser self-contained e será necessário especificar o runtime onde a aplicação irá funcionar.

dotnet publish -c Release -r win-x64 --self-contained

Honestamente, exceto por cenários muito específicos, os ganhos de performance obtidos com essa opção são difíceis de justificar. Há aspectos mais importantes a considerar antes de recorrer a mudanças no processo de compilação.

Compartilhe este insight:

Comentários

Participe deixando seu comentário sobre este artigo a seguir:

Subscribe
Notify of
guest
0 Comentários
Inline Feedbacks
View all comments

AUTOR

Elemar Júnior
Fundador e CEO da EximiaCo atua como tech trusted advisor ajudando empresas e profissionais a gerar mais resultados através da tecnologia.

NOVOS HORIZONTES PARA O SEU NEGÓCIO

Nosso time está preparado para superar junto com você grandes desafios tecnológicos.

Entre em contato e vamos juntos utilizar a tecnologia do jeito certo para gerar mais resultados.

Insights EximiaCo

Confira os conteúdos de negócios e tecnologia desenvolvidos pelos nossos consultores:

Arquivo

Pós-pandemia, trabalho remoto e a retenção dos profissionais de TI

CTO Consulting e Especialista em Execução em TI
EximiaCo 2024 - Todos os direitos reservados
0
Queremos saber a sua opinião, deixe seu comentáriox
()
x
Oferta de pré-venda!

Mentoria em
Arquitetura de Software

Práticas, padrões & técnicas para Arquitetura de Software, de maneira efetiva, com base em cenários reais para profissionais envolvidos no projeto e implantação de software.

Muito obrigado!

Deu tudo certo com seu envio!
Logo entraremos em contato

Compilação “ahead-of-time” (ReadyToRun) no .NET Core 3

Para se candidatar nesta turma aberta, preencha o formulário a seguir:

Compilação “ahead-of-time” (ReadyToRun) no .NET Core 3

Para se candidatar nesta turma aberta, preencha o formulário a seguir:

Condição especial de pré-venda: R$ 14.000,00 - contratando a mentoria até até 31/01/2023 e R$ 15.000,00 - contratando a mentoria a partir de 01/02/2023, em até 12x com taxas.

Tenho interesse nessa capacitação

Para solicitar mais informações sobre essa capacitação para a sua empresa, preencha o formulário a seguir:

Tenho interesse em conversar

Se você está querendo gerar resultados através da tecnologia, preencha este formulário que um de nossos consultores entrará em contato com você:

O seu insight foi excluído com sucesso!

O seu insight foi excluído e não está mais disponível.

O seu insight foi salvo com sucesso!

Ele está na fila de espera, aguardando ser revisado para ter sua publicação programada.

Tenho interesse em conversar

Se você está querendo gerar resultados através da tecnologia, preencha este formulário que um de nossos consultores entrará em contato com você:

Tenho interesse nessa solução

Se você está procurando este tipo de solução para o seu negócio, preencha este formulário que um de nossos consultores entrará em contato com você:

Tenho interesse neste serviço

Se você está procurando este tipo de solução para o seu negócio, preencha este formulário que um de nossos consultores entrará em contato com você:

× Precisa de ajuda?