Quick Dev: Melhorando a performance de aplicações ASP .NET
Olá pessoal!
Quem nunca se incomodou com o tempo levado para a recompilação de aplicações ASP .NET já publicadas? Pois é, cada vez que um arquivo “top-level” é alterado em sua aplicação ASP .NET, por padrão, toda a compilação do site feita no seu primeiro acesso é invalidada, causando uma recompilação no próximo acesso. São considerados arquivos “top-level” os arquivos global.asax e todos os arquivos da pasta bin e app_code. Isso pode se tornar um problema para grandes aplicações, pois, o tempo de recompilação pode se estender além do desejável, podendo chegar a mais de dez minutos, dependendo do tamanho da aplicação, conforme registrado na documentação da Microsoft (veja o link no final deste post).
Para contornar este problema, a Microsoft incluiu um recurso no .NET que nos permite habilitar o que é chamado de compilação otimizada. Esta compilação é um pouco mais inteligente do que a padrão, de forma que, ao invés de recompilar o site inteiro quando um arquivo top-level é alterado, apenas os arquivos afetados pela sua alteração são recompilados, diminuindo o tempo total da recompilação e por consequência, o tempo de espera do primeiro acesso após a modificação.
Para ativar a compilação otimizada, basta incluir a configuração a seguir dentro do elemento system.web do arquivo web.config da sua aplicação. O recurso já está disponível no Windows 7, Windows Server 2008 Service Pack 2 e Windows Server 2008 R2. Para o Windows Vista Service Pack 1 e Windows Vista Service Pack 2, é necessário instalar o seguinte hot-fix: http://code.msdn.microsoft.com/KB967535.
Quem nunca se incomodou com o tempo levado para a recompilação de aplicações ASP .NET já publicadas? Pois é, cada vez que um arquivo “top-level” é alterado em sua aplicação ASP .NET, por padrão, toda a compilação do site feita no seu primeiro acesso é invalidada, causando uma recompilação no próximo acesso. São considerados arquivos “top-level” os arquivos global.asax e todos os arquivos da pasta bin e app_code. Isso pode se tornar um problema para grandes aplicações, pois, o tempo de recompilação pode se estender além do desejável, podendo chegar a mais de dez minutos, dependendo do tamanho da aplicação, conforme registrado na documentação da Microsoft (veja o link no final deste post).
Para contornar este problema, a Microsoft incluiu um recurso no .NET que nos permite habilitar o que é chamado de compilação otimizada. Esta compilação é um pouco mais inteligente do que a padrão, de forma que, ao invés de recompilar o site inteiro quando um arquivo top-level é alterado, apenas os arquivos afetados pela sua alteração são recompilados, diminuindo o tempo total da recompilação e por consequência, o tempo de espera do primeiro acesso após a modificação.
Para ativar a compilação otimizada, basta incluir a configuração a seguir dentro do elemento system.web do arquivo web.config da sua aplicação. O recurso já está disponível no Windows 7, Windows Server 2008 Service Pack 2 e Windows Server 2008 R2. Para o Windows Vista Service Pack 1 e Windows Vista Service Pack 2, é necessário instalar o seguinte hot-fix: http://code.msdn.microsoft.com/KB967535.
|
Quick Dev: Melhorando a
performance de aplicações ASP .NET
Olá pessoal!
Quem nunca
se incomodou com o tempo levado para a recompilação de aplicações ASP .NET já
publicadas? Pois é, cada vez que um arquivo “top-level” é alterado em sua
aplicação ASP .NET, por padrão, toda a compilação do site feita no seu primeiro
acesso é invalidada, causando uma recompilação no próximo acesso. São
considerados arquivos “top-level” os arquivos global.asax e todos os arquivos
da pasta bin e app_code. Isso pode se tornar um problema para grandes
aplicações, pois, o tempo de recompilação pode se estender além do desejável,
podendo chegar a mais de dez minutos, dependendo do tamanho da aplicação, conforme
registrado na documentação da Microsoft (veja o link no final deste post).
Para
contornar este problema, a Microsoft incluiu um recurso no .NET que nos permite
habilitar o que é chamado de compilação otimizada. Esta compilação é um pouco
mais inteligente do que a padrão, de forma que, ao invés de recompilar o site
inteiro quando um arquivo top-level é alterado, apenas os arquivos afetados
pela sua alteração são recompilados, diminuindo o tempo total da recompilação e
por consequência, o tempo de espera do primeiro acesso após a modificação.
Para ativar
a compilação otimizada, basta incluir a configuração a seguir dentro do
elemento system.web do arquivo web.config da sua aplicação. O recurso já está
disponível no Windows 7, Windows Server 2008 Service Pack 2 e Windows Server
2008 R2. Para o Windows Vista Service Pack 1 e Windows Vista Service Pack 2, é
necessário instalar o seguinte hot-fix: http://code.msdn.microsoft.com/KB967535.
<compilation
optimizeCompilations="true" />
|
Problema
resolvido? Não totalmente. Com este recurso habilitado, é preciso ficar muito
atento aos tipos de alteração que são feitas na aplicação. Isso porque, se
apenas os arquivos afetados diretamente pela modificação são recompilados,
podem ocorrer erros quando um arquivo da versão antiga precisar acessar algum
recurso não mais compatível na versão nova. Por exemplo, imagine uma página que
acessa um método de uma determinada classe, que teve sua assinatura alterada na
modificação realizada. A classe publicada é recompilada, porém, a página não, o
que causa um erro quando da sua execução.
Para mais
detalhes sobre o assunto veja a documentação completa a respeito no artigo: Understanding ASP.NET
Dynamic Compilation. Não deixe de considerar também a opção de utilização
da pré-compilação: ASP.NET Precompilation
Overview.
Fonte: Nelson Bassetto
http://nelsonbassetto.com/blog/2010/12/quick-dev-melhorando-a-performance-de-aplicaes-asp-net/#sthash.IWVV1VPv.dpuf
Obs: Acrescentamos o parâmetro numRecompilesBeforeAppRestart="500"
http://msdn.microsoft.com/en-us/library/bb398860.aspx
http://support.microsoft.com/kb/319947/pt-br
http://sharepointadda.blogspot.com.br/2013/04/setting-up-development-environment-for.html
https://support.microsoft.akadns.net/kb/967535
Nenhum comentário:
Postar um comentário