Dicas para melhorar a performance no ASP.NET MVC 3

03/05/2011 02:32:00 By Felipe Pessoto

Vi o sessão sobre Performance no ASP.NET MVC 3 do mvcConf. Tem algumas dicas para melhorar a performance da aplicação sem grandes alterações:

-Nas View fortemente tipadas sempre passar uma instância do objeto em vez de null. É muito comum na Action Add passar null pra View: "return View();. O problema acontece quando se usa os HtmlHelpers que aceitam Expression Tree, Html.TextBoxFor(x=> x.Name), ele vai disparar uma exception que é automáticamente capturada, mas que impacta na performance.

-Remover View Engines não utilizadas, assim evita que o ASP.NET MVC 3 procure por Views que não existes no disco.

-Usar OutputCache onde possível

-Desisintalar UrlRewriter do IIS caso não esteja usando no servidor

ASP.NET Site Performance Secrets

01/26/2011 21:47:00 By Felipe Pessoto

Hoje terminei de ler este livro, ele é recente, lançado em Outubro de 2010. O livro é focado em ASP.NET guiando o leitor por todos os gargalos que podem atrapalhar a escalabilidade do seu site. Chega a ser assustora a diferença entre um site otimizado para performance máxima e um mal projetado. Um exemplo de um tweet do Joel Spolsky: "Digg: 200MM page views, 500 servers. Stack Overflow: 60MM page views, 5 servers. What am I missing?". Não que o Digg seja mal projetado, pelo contrário, mas mesmo assim como é possível tanta diferença? Bem os criadores do Stack Overflow são todos referências e sabem as melhores técnicas do que se fazer ou não fazer.

Quando comecei a ler o livro achei que iria encontrar aquelas dicas básicas, de não enviar dados demais pela rede, usar CDN, etc, mas o autor aborda muito mais do que isso, até aprendi sobre alguns recursos que eu desconhecia sobre o ASP.NET. Em resumo os principais assunto são: CPU, Memória, Caching, Threads, Thread Locking, Compressão, IO, Banco de Dados, CDN, Javascript e Testes de Cargas.

As vezes acabamos esquecendo de alguns detalhes(não menos importantes) que podem comprometer toda a experiencia de uso. Por exemplo, não se preocupar com o Thread Pool/Thread Locking do ASP.NET pode fazer seu servidor demorar pra responder as requisições mesmo que não esteja usando 100% da CPU, ou códigos Javascript que bloqueiam a renderização da página. O Autor explica porquê estes problemas ocorrem e como evitá-los. Recomendo!

 

ASP.NET Site Performance Secrets
Autor: Matt Perdeck

Comprar no Amazon