O documento discute várias técnicas e estratégias para melhorar o desempenho de aplicações ASP.NET MVC, incluindo: 1) otimizar requisições HTTP reduzindo chamadas e downloads; 2) usar cache efetivamente para evitar processamento desnecessário; 3) minificar e combinar arquivos CSS e JavaScript para reduzir tamanho;
9. IIS
• ApplicationPool
– Isola nossas aplicações promovendo segurança,
confiança, disponibilidade e performance.
– Versão de framework
– Modo de pipeline
– Recycling
• WorkerProcess
– Host da aplicação (w3wp.exe)
– Pool de Threads
• Número limitado
• Bloqueio
10. Requests e o Thread Pool
Processando Requisições Síncronas (Caixa Correios)
11. Requests e o Thread Pool
Processando Requisições Assíncronas (Garçom restaurante)
12. Requests e o Thread Pool
Processando Requisições Assíncronas (Garçom restaurante)
13. Task-based Asynchronous
Pattern (TAP)
Task Parallel Library (TPL)
Baseada no conceito de Tasks
Maior eficiência no uso dos recursos computacionais
Melhor controle programático das Threads
14.
15. Cache
• “A melhor solução de performance é fazer
com que o seu código não seja executado o
tempo todo!” Tarifa, Alexandre
16.
17. • “…only 10-20% of the total
end-user response time is
spent getting the HTML
document to the browser. You
need to focus on the other 80-
90% if you want to make your
pages noticeably faster…”
18. 14 regras
• Rule 1 - Make Fewer HTTP Requests
• Rule 2 - Use a Content Delivery Network
• Rule 3 - Add an Expires Header
• Rule 4 - Gzip Components
• Rule 5 - Put Stylesheets at the Top
• Rule 6 - Put Scripts at the Bottom
• Rule 7 - Avoid CSS Expressions
• Rule 8 - Make JavaScript and CSS External
• Rule 9 - Reduce DNS Lookups
• Rule 10 - Minify JavaScript
• Rule 11 - Avoid Redirects
• Rule 12 - Remove Duplicate Scripts
• Rule 13 - Configure ETags
• Rule 14 - Make AJAX Cacheable
19. Anatomia de uma requisição HTTP
• DNS Lookup
• Initial Connection
– Keep-Alive Header
• Time to First Byte
• Content Download
20. CSS e JS
• Bundling
• Minification
• CSS
– Header
• JS
– Assíncrono
– Mais próximo do final