Grande atraso na primeira solicitação do navegador para o aplicativo da Web hospedado pelo Mono XSP
Estamos usando o servidor da web Mono (2.10) XSP4 para hospedar um aplicativo Web ASP.Net MVC3 em execução em um Linux (ARM) incorporado. Ao iniciar o XSP4, leva alguns segundos até que esteja pronto e aceite solicitações. Não há problema com isso até agor
Mas quando a primeira solicitação de um navegador / visitante do site é feita, o XSP4 usa toda a CPU que pode obter por cerca de 55 segundos até que a página seja (com sucesso) exibida no navegador da web. Isso acontece após cada inicialização / reinicialização do XSP.
Meu primeiro pensamento foi que essa é a compilação just-in-time de todo o aplicativo da web. Então, eu criei um pacote de implantação que contém apenas os binários, .css, .js e as visualizações (.cshtml). Funcionou, mas ainda tinha esse grande atraso.
Depois tentei pré-compilar o aplicativo da Web usando o Visual Studio (conforme indicado em algumas notas de versão do Mono). Novamente, o site funcionou bem, mas o grande atraso ainda estava present
Algumas perguntas que realmente estão em minha mente:
Alguém sabe o que o servidor da Web XSP está fazendo quando a primeira solicitação do navegador está chegando? Essa é a compilação just-in-time, mesmo que seja um aplicativo da Web pré-compilado?Por que está fazendo isso depois de cada reinício? O enorme atraso pode ser reduzido de alguma maneira geralmentO grande atraso pode ser reduzido para que seja feito apenas na primeira solicitação do navegador após uma atualização de aplicativo da Web (armazenada em cache entre as execuções subseqüentes do XSPQualquer ajuda / idéias seria ótima.
Atualizar Enquanto isso, descobri que o atraso é causado pelo compilador Mono / ASP.Net dcms criando e compilando as visualizações do MVC3 em /tmp/root-aspnet.../, que é mapeado para a memória e, portanto, não é persistente. Agora estou procurando uma maneira de controlar onde o XSP4 / Mono.WebServer / Mono-Asp.Net armazena esses arquivos compilados. Se alguém estiver familiarizado com isso, me avise; -)