Melhorando o desempenho de aplicações ASP.NET que usam AJAX

Alguns dias atrás estava lendo alguns artigos sobre desempenho e achei um artigo interessante de LanceZhang na qual ele fez uma bateria de testes em um website que possuia controles ASP.NET AJAX. O artigo você lê na íntegra aqui. Mas, como se diz na web, "é old mas é gold!", aproveitei o artigo dele para resumir (tirar o quente) das configurações que ele aplicou e os colocarei aqui. Para quem sabe inglês o artigo é indispensável a leitura, pois lá ele mostra com detalhes os testes realizados bem como os gráficos de desempenho.

Bem, o que ele fez? Encheu uma página de controles AJAX e primeiramente mediu o tráfego na rede averiguando a quantidade de bytes que são carregados quando feito uma requisição, sendo ela quando dado um PostBack ou apenas no Load da página. Quem tem o Firefox, com certeza deve ter o plugin Firebug instalado. No Firebug tem uma sessão de monitoramento de Rede que analisa as chamadas realizadas.


A primeira coisa notada é o tamanho da página que estava muito grande. O uso do cache reduzia bruscamente o tamanho da página sem fazer novos carregamentos desnecessários. Juntamente com a compressão do ScriptResource que reduz ainda mais o tamanho dos scripts gerados.  Então, no web.config, devemos aplicar a seguinte configuração:

<system.web.extensions>
<scripting>
<scriptResourceHandler enableCompression="true" enableCaching="true" />
</scripting>
</system.web.extensions>

Faça um novo teste e notará a diferença! Outro aplicação de desempenho é a forma como o ScriptManager do AJAX é trabalhado. Então é sugerido usá-lo com a seguinte configuração:

<asp:ScriptManager ID="ScriptManagerAjax" runat="server" EnablePartialRendering="false" ScriptMode="Release" LoadScriptsBeforeUI="false">
</asp:ScriptManager>

Cuidado com o EnablePartialRendering! Faça o teste em sua aplicação com os valores false ou true porque a depender do que você usa em seu sistema isso muda muito no comportamento dos scripts. Por último, você pode usar o CompositeScript dentro do ScriptManager para agregar várias chamadas de scripts em uma só. Veja lá no site de LanceZhang como fazer, caso tenha interesse nessa parte e se isso ainda não foi o suficiente.

Agregado a isso, e fora do escopo, você pode usar a compressão/compactação do ViewState para minimizar o tamanho da página. Você pode encontrar artigos relacionados por aí na net, mas aconselho dar uma lida nesse aqui ou esse a depender de como queira utilizar. Muitas vezes eu prefiro desabilitar o ViewState... Mais rápido, só que com cautela!

0 comentários:

Postar um comentário