performance codificando night week 2016

Post on 10-Jan-2017

160 Views

Category:

Technology

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Performance

Codificando Night Week 2016

Rodolfo Fadino• Microsoft MVP• Especialista em desenvolvimento web• Tecnologia em Processamento de Dados

FATEC-SP• Portal Minha Vida

! Instantâneo

Soma de fatores

Back-End• Cache• Thread• Debug/Release• SQL• IO• Network• ...

Front-End• CSS• JS• IMG• Headers• Minified• CDN• Proxy• Cookies• ...

Vamos fazer um projeto para isso

Backlog

Melhorar a performance é uma responsabilidade nossa (desenvolvedor)

Soma de fatores

Back-End• Cache• Thread• Debug/Release• SQL• IO• Network• ...

Front-End• CSS• JS• IMG• Headers• Minified• CDN• Proxy• Cookies• ...

BACK-END

Cache

• “A melhor solução de performance é fazer com que o seu código não seja executado o tempo todo!” Tarifa, Alexandre

Demo

Cache de objetos

ORM

• Conheça as consultas e como seu ORM está trabalhando os dados

• Teste e analise quais features são importantes antes de começar a utilizar um (EF, Dapper,ADO,etc)

Demo

ORM

Requests e o Thread Pool

Processando Requisições Assíncronas (Garçom restaurante)

Task-based Asynchronous Pattern (TAP)

Task Parallel Library (TPL)Baseada no conceito de TasksMaior eficiência no uso dos recursos computacionaisMelhor controle programático das Threads

API

API

CacheJSONGzipOData

FRONT-END

• “…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…” (Steve Souders)

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

Anatomia de uma requisição HTTP

• DNS Lookup• Initial Connection– Keep-Alive Header

• Time to First Byte• Content Download

CSS e JS

• Bundling• Minification

• CSS– Header

• JS– Assíncrono– Mais próximo do final

DemoBundlingMinification

Imagens

• Expires– Handler– Imagens fisicas

• Lazy Load– Dependendo do cenário

• Sprites• Otimizar– RIOT

DemoImagens

Dicas Rápidas

• Debug/Release• UrlRewrite• SQL Plano de execução• Glimpse

Obrigado

• @rodolfofadino• http://rodolfofadino.com.br

top related