Não publique aplicações com Debug ativado – Asp.Net Performance
Olá pessoal,
Vamos às dicas simples de performance de aplicações Asp.Net.
A dica do dia é: Desabilitar o debug=”true” em todas as aplicações.
É muito importante para servidores de produção assegurar que suas aplicações não estão sendo sendo executadas com debug=”true” e tracing habilitado.
Entre os impactos de performance podemos listar alguns:
- Não há a compilação em lote, ou seja, cada página é compilada em uma Dll separada na pasta Temporary Asp.Net Files (quando debug=false, todas há uma otimização agrupando várias páginas e ascx em um único arquivo.) na compilação em runtime.
- Os requests asp.net não entram em timeout;
- Compilação em debug mode torna a aplicação lenta a fim de permitir o debug linha-a-linha
- WebResources não são cacheados.
Para evitar esse tipo de problema assegure-se que as aplicações não estão sendo publicadas em modo debug. Isso é feito no web.config da própria aplicação, na tag compilation, dentro de system.web (o valor default é false, se não especificado:
<configuration> <system.web> <compilation debug="false"> <assemblies> <add assembly="*"/> </assemblies> </compilation> </system.web> </configuration>
Caso a aplicação tenha um servidor específico para produção uma forma de se evitar enganos é especificar no arquivo machine.config a propriedade retail=”true” (o valor default caso não especificado é false, então é preciso modificar/inserir). Essa propriedade é prioritária em relação à anterior, ou seja, mesmo que as aplicações estejam com debug=”true”, se a propriedade retail da tag deployment estiver true, o debug=”true” será ignorado.
<system.web> <deployment retail="true" /> </system.web>
Referências:
http://blogs.msdn.com/b/tess/archive/2006/04/13/575364.aspx
http://weblogs.asp.net/scottgu/archive/2006/04/11/442448.aspx
http://msdn.microsoft.com/en-us/library/ms228298(v=vs.80).aspx
http://msdn.microsoft.com/en-us/library/s10awwz0(v=vs.80).aspx
- Certificação Microsoft – Second Shot
- Técnico em informática