Como determinar a melhoria de desempenho ao pré-compilar o site ASP.NET?

3

Eu tenho um site ASP.NET (não-MVC) que é implantado no IIS. Eu configurei as opções de pré-compilação (para implantar / publicar). As configurações estão abaixo na imagem. Eu tentei uma variação das configurações abaixo e da superfície, eu não estou vendo nenhuma melhoria significativa de fazer isso. Para testar, estou implantando um pré-compilado e um não pré-compilado para dois sites do IIS diferentes. Entro e reciclei o pool de aplicativos para cada site (ou redefinição do IIS) ... depois de fazer isso, acessei os dois sites separadamente e eles demoraram o mesmo para processar o carregamento da primeira página (ou seja, armazenar em cache os pools de aplicativos?) E em seguida, as chamadas subsequentes para outras páginas aspx levam aproximadamente o mesmo período de tempo (em pré-compilado ou não-pré-compilado). Estou esquecendo de algo? A pré-compilação só funciona bem para sites enormes? Minas um site de tamanho médio, que tem chamadas de API, chamadas de banco de dados, etc.

Existem configurações específicas que preciso aplicar para melhorar os tempos de carregamento dos primeiros hits do site após a reciclagem do pool de aplicativos? Ou, em geral, melhorar o tempo de resposta do primeiro hit para um aspx ou ascx que ainda não tenha sido compilado?

    
por Josh 14.01.2015 / 18:36

1 resposta

6

Diferença entre "pré-compilado" e "não pré-compilado", é que as páginas do site "não pré-compiladas" serão compiladas dinamicamente na primeira solicitação para cada uma dessas páginas pelo compilador .net (csc.exe / vbc.exe, você pode realmente vê-los pop-up na guia de processos do gerenciador de tarefas). Assim, cada página terá um tempo de tempo de compilação, embora geralmente seja insignificante. Se o seu site também tiver arquivos de código no diretório / app_code, eles serão compilados antes da inicialização dos sites, portanto, a inicialização deve ser um pouco mais lenta que a versão "pré-compilada". Ou seja, se o elemento de compilação do seu site "não pré-compilado" no web.config tiver o atributo "batch" definido como false, caso contrário, ele gastará tempo compilando todas as páginas logo na inicialização, o que pode demorar muito dependendo do tamanho do seu local. Elemento de compilação (Esquema de configurações do ASP.NET)

Depois que os arquivos / app_code e, por exemplo, default.aspx forem compilados no site "não pré-compilado", não haverá diferença no desempenho real entre os dois.

A redefinição do IIS ou uma reciclagem do pool de aplicativos também não mostrará diferenças, pois após a implantação de uma e a execução de ambas, os dois sites são compilados. A redefinição do pool de aplicativos / redefinição do IIS não causará uma recompilação do site "não pré-compilado", apenas alterando arquivos / reimplantação.

Dê uma olhada Entendendo a compilação dinâmica do ASP.NET , é importante entender o que isso faz para comparar os dois.

    
por 21.01.2015 / 16:50