SlideShare uma empresa Scribd logo
1 de 28
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
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)
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 Tasks
Maior eficiência no uso dos recursos computacionais
Melhor controle programático das Threads
API
API
Cache
JSON
Gzip
OData
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
Imagens
• Expires
– Handler
– Imagens fisicas
• Lazy Load
– Dependendo do cenário
• Sprites
• Otimizar
– RIOT
Dicas Rápidas
• Debug/Release
• UrlRewrite
• SQL Plano de execução
• Glimpse
Obrigado
• @rodolfofadino
• http://rodolfofadino.com.br

Mais conteúdo relacionado

Mais procurados

NoSQL no Microsoft Azure - Global Azure Bootcamp 2017
NoSQL no Microsoft Azure - Global Azure Bootcamp 2017NoSQL no Microsoft Azure - Global Azure Bootcamp 2017
NoSQL no Microsoft Azure - Global Azure Bootcamp 2017Renato Groff
 
Introdução a NoSQL com MongoDB e FireDAC
Introdução a NoSQL com MongoDB e FireDAC Introdução a NoSQL com MongoDB e FireDAC
Introdução a NoSQL com MongoDB e FireDAC Fernando Rizzato
 
NoSQL para Desenvolvedores .NET - Developers-SP - Setembro-2017
NoSQL para Desenvolvedores .NET - Developers-SP - Setembro-2017NoSQL para Desenvolvedores .NET - Developers-SP - Setembro-2017
NoSQL para Desenvolvedores .NET - Developers-SP - Setembro-2017Renato Groff
 
Primeiros passos com a API do Zabbix - 3º Zabbix Meetup do Interior
Primeiros passos com a API do Zabbix - 3º Zabbix Meetup do InteriorPrimeiros passos com a API do Zabbix - 3º Zabbix Meetup do Interior
Primeiros passos com a API do Zabbix - 3º Zabbix Meetup do InteriorZabbix BR
 
Minicurso Ruby e Rails (RailsMG UNA)
Minicurso Ruby e Rails (RailsMG UNA)Minicurso Ruby e Rails (RailsMG UNA)
Minicurso Ruby e Rails (RailsMG UNA)Daniel Lopes
 
Azure Cosmos DB - TDC 2017 - São Paulo
Azure Cosmos DB - TDC 2017 - São PauloAzure Cosmos DB - TDC 2017 - São Paulo
Azure Cosmos DB - TDC 2017 - São PauloRenato Groff
 
Criando um baseline de seu ambiente completo utilizando SSIS e SSRS
Criando um baseline de seu ambiente completo utilizando SSIS e SSRSCriando um baseline de seu ambiente completo utilizando SSIS e SSRS
Criando um baseline de seu ambiente completo utilizando SSIS e SSRSMarcos Freccia
 
Plataforma Tecnológica do clicRBS
Plataforma Tecnológica do clicRBSPlataforma Tecnológica do clicRBS
Plataforma Tecnológica do clicRBSLincolm Aguiar
 
DocumentDB - Azure Fridays São Paulo
DocumentDB - Azure Fridays São PauloDocumentDB - Azure Fridays São Paulo
DocumentDB - Azure Fridays São PauloRenato Groff
 
Conhecendo o mongodb e clusterização de dados - ReplicaSet
Conhecendo o mongodb e clusterização de dados - ReplicaSetConhecendo o mongodb e clusterização de dados - ReplicaSet
Conhecendo o mongodb e clusterização de dados - ReplicaSetJhonathan de Souza Soares
 
Arquitetura SQL Server
Arquitetura SQL ServerArquitetura SQL Server
Arquitetura SQL ServerRaul Oliveira
 
Frontline - Rails3.1
Frontline - Rails3.1Frontline - Rails3.1
Frontline - Rails3.1Daniel Lopes
 
Minicurso - Banco de Dados NoSQL com .Net Core
Minicurso - Banco de Dados NoSQL com .Net CoreMinicurso - Banco de Dados NoSQL com .Net Core
Minicurso - Banco de Dados NoSQL com .Net CoreBruno Roldão
 
[MinhaVida TechDay] NoSQL
[MinhaVida TechDay] NoSQL[MinhaVida TechDay] NoSQL
[MinhaVida TechDay] NoSQLCleber Dantas
 
Analise de Performance Usando o SO
Analise de Performance Usando o SOAnalise de Performance Usando o SO
Analise de Performance Usando o SORaul Oliveira
 
Curso de WordPress - Não Sei Programar - Cristiano Santos
Curso de WordPress - Não Sei Programar - Cristiano SantosCurso de WordPress - Não Sei Programar - Cristiano Santos
Curso de WordPress - Não Sei Programar - Cristiano Santosaluni_ead
 

Mais procurados (20)

Browsers como vivem o que fazem
Browsers como vivem o que fazemBrowsers como vivem o que fazem
Browsers como vivem o que fazem
 
NoSQL no Microsoft Azure - Global Azure Bootcamp 2017
NoSQL no Microsoft Azure - Global Azure Bootcamp 2017NoSQL no Microsoft Azure - Global Azure Bootcamp 2017
NoSQL no Microsoft Azure - Global Azure Bootcamp 2017
 
Introdução a NoSQL com MongoDB e FireDAC
Introdução a NoSQL com MongoDB e FireDAC Introdução a NoSQL com MongoDB e FireDAC
Introdução a NoSQL com MongoDB e FireDAC
 
NoSQL para Desenvolvedores .NET - Developers-SP - Setembro-2017
NoSQL para Desenvolvedores .NET - Developers-SP - Setembro-2017NoSQL para Desenvolvedores .NET - Developers-SP - Setembro-2017
NoSQL para Desenvolvedores .NET - Developers-SP - Setembro-2017
 
Primeiros passos com a API do Zabbix - 3º Zabbix Meetup do Interior
Primeiros passos com a API do Zabbix - 3º Zabbix Meetup do InteriorPrimeiros passos com a API do Zabbix - 3º Zabbix Meetup do Interior
Primeiros passos com a API do Zabbix - 3º Zabbix Meetup do Interior
 
Minicurso Ruby e Rails (RailsMG UNA)
Minicurso Ruby e Rails (RailsMG UNA)Minicurso Ruby e Rails (RailsMG UNA)
Minicurso Ruby e Rails (RailsMG UNA)
 
Azure Cosmos DB - TDC 2017 - São Paulo
Azure Cosmos DB - TDC 2017 - São PauloAzure Cosmos DB - TDC 2017 - São Paulo
Azure Cosmos DB - TDC 2017 - São Paulo
 
Criando um baseline de seu ambiente completo utilizando SSIS e SSRS
Criando um baseline de seu ambiente completo utilizando SSIS e SSRSCriando um baseline de seu ambiente completo utilizando SSIS e SSRS
Criando um baseline de seu ambiente completo utilizando SSIS e SSRS
 
Sass - Syntactically Awesome Style Sheets
Sass - Syntactically Awesome Style SheetsSass - Syntactically Awesome Style Sheets
Sass - Syntactically Awesome Style Sheets
 
Plataforma Tecnológica do clicRBS
Plataforma Tecnológica do clicRBSPlataforma Tecnológica do clicRBS
Plataforma Tecnológica do clicRBS
 
DocumentDB - Azure Fridays São Paulo
DocumentDB - Azure Fridays São PauloDocumentDB - Azure Fridays São Paulo
DocumentDB - Azure Fridays São Paulo
 
CloudFlare
CloudFlareCloudFlare
CloudFlare
 
Conhecendo o mongodb e clusterização de dados - ReplicaSet
Conhecendo o mongodb e clusterização de dados - ReplicaSetConhecendo o mongodb e clusterização de dados - ReplicaSet
Conhecendo o mongodb e clusterização de dados - ReplicaSet
 
Rails nas Nuvens
Rails nas NuvensRails nas Nuvens
Rails nas Nuvens
 
Arquitetura SQL Server
Arquitetura SQL ServerArquitetura SQL Server
Arquitetura SQL Server
 
Frontline - Rails3.1
Frontline - Rails3.1Frontline - Rails3.1
Frontline - Rails3.1
 
Minicurso - Banco de Dados NoSQL com .Net Core
Minicurso - Banco de Dados NoSQL com .Net CoreMinicurso - Banco de Dados NoSQL com .Net Core
Minicurso - Banco de Dados NoSQL com .Net Core
 
[MinhaVida TechDay] NoSQL
[MinhaVida TechDay] NoSQL[MinhaVida TechDay] NoSQL
[MinhaVida TechDay] NoSQL
 
Analise de Performance Usando o SO
Analise de Performance Usando o SOAnalise de Performance Usando o SO
Analise de Performance Usando o SO
 
Curso de WordPress - Não Sei Programar - Cristiano Santos
Curso de WordPress - Não Sei Programar - Cristiano SantosCurso de WordPress - Não Sei Programar - Cristiano Santos
Curso de WordPress - Não Sei Programar - Cristiano Santos
 

Destaque (12)

Average(1)
Average(1)Average(1)
Average(1)
 
London boulrvard
London boulrvardLondon boulrvard
London boulrvard
 
ABN AMRO VERHOOGT RENTE TARIEVEN PER 20 DECEMBER 2013
ABN AMRO VERHOOGT RENTE TARIEVEN PER 20 DECEMBER 2013ABN AMRO VERHOOGT RENTE TARIEVEN PER 20 DECEMBER 2013
ABN AMRO VERHOOGT RENTE TARIEVEN PER 20 DECEMBER 2013
 
Keinerv
KeinervKeinerv
Keinerv
 
skydrive_word_doc
skydrive_word_docskydrive_word_doc
skydrive_word_doc
 
Zoran Cukale: Apoloni ,=krimi=
Zoran Cukale: Apoloni ,=krimi=Zoran Cukale: Apoloni ,=krimi=
Zoran Cukale: Apoloni ,=krimi=
 
CAC CV 10-24-16
CAC CV 10-24-16CAC CV 10-24-16
CAC CV 10-24-16
 
Plomeria
PlomeriaPlomeria
Plomeria
 
Cost management haghpanah-2015
Cost management haghpanah-2015Cost management haghpanah-2015
Cost management haghpanah-2015
 
Dossier ocupació, igualtat i cohesió social
Dossier ocupació, igualtat i cohesió socialDossier ocupació, igualtat i cohesió social
Dossier ocupació, igualtat i cohesió social
 
FlexBox - Uma visão geral
FlexBox - Uma visão geralFlexBox - Uma visão geral
FlexBox - Uma visão geral
 
El imaginario-de-los-sentimientos-de-felix
El imaginario-de-los-sentimientos-de-felixEl imaginario-de-los-sentimientos-de-felix
El imaginario-de-los-sentimientos-de-felix
 

Semelhante a Performance Codificando Night Week 2016

Drupal Performance - Dicas e técnicas para levar seu Drupal às nuvens
Drupal Performance - Dicas e técnicas para levar seu Drupal às nuvensDrupal Performance - Dicas e técnicas para levar seu Drupal às nuvens
Drupal Performance - Dicas e técnicas para levar seu Drupal às nuvensPaulino Michelazzo
 
Xen e CoreOS: solução para data mining com NodeJS e ElasticSearch
Xen e CoreOS: solução para data mining com NodeJS e ElasticSearchXen e CoreOS: solução para data mining com NodeJS e ElasticSearch
Xen e CoreOS: solução para data mining com NodeJS e ElasticSearchBernardo Donadio
 
Need for (web) speed - Tchelinux Pelotas 2014
Need for (web) speed - Tchelinux Pelotas 2014Need for (web) speed - Tchelinux Pelotas 2014
Need for (web) speed - Tchelinux Pelotas 2014Jerônimo Medina Madruga
 
Redis um banco chave valor
Redis um banco chave valorRedis um banco chave valor
Redis um banco chave valorKinn Julião
 
Otimização de Desempenho de Websites desenvolvidos em Microsoft ASP.NET e hos...
Otimização de Desempenho de Websites desenvolvidos em Microsoft ASP.NET e hos...Otimização de Desempenho de Websites desenvolvidos em Microsoft ASP.NET e hos...
Otimização de Desempenho de Websites desenvolvidos em Microsoft ASP.NET e hos...Rafael Schettino
 
Arquitetando Soluções de Dados com PostgreSQL
Arquitetando Soluções de Dados com PostgreSQLArquitetando Soluções de Dados com PostgreSQL
Arquitetando Soluções de Dados com PostgreSQLRaul Oliveira
 
Aumente a performance de seu site
Aumente a performance de seu siteAumente a performance de seu site
Aumente a performance de seu siteHenrique Lima
 
Aumente a performance de seu site de maneira disciplinada
Aumente a performance de seu site de maneira disciplinadaAumente a performance de seu site de maneira disciplinada
Aumente a performance de seu site de maneira disciplinadaHenrique Lima
 
2019 - GUOB MeetUp - Journey to Cloud and DBA Career
2019 - GUOB MeetUp - Journey to Cloud and DBA Career2019 - GUOB MeetUp - Journey to Cloud and DBA Career
2019 - GUOB MeetUp - Journey to Cloud and DBA CareerMarcus Vinicius Miguel Pedro
 
5º Meetup Datalab - Do nada a Produção usando Arquitetura Serverless
5º Meetup Datalab - Do nada a Produção usando Arquitetura Serverless5º Meetup Datalab - Do nada a Produção usando Arquitetura Serverless
5º Meetup Datalab - Do nada a Produção usando Arquitetura ServerlessAndré Ricardo da S. Souza
 
MSTechday - Técnicas e recursos para desenvolvimento web em cenários de grand...
MSTechday - Técnicas e recursos para desenvolvimento web em cenários de grand...MSTechday - Técnicas e recursos para desenvolvimento web em cenários de grand...
MSTechday - Técnicas e recursos para desenvolvimento web em cenários de grand...Cleber Dantas
 
Otimizacao de websites em PHP
Otimizacao de websites em PHPOtimizacao de websites em PHP
Otimizacao de websites em PHPFelipe Ribeiro
 
BigQuery Performance Improvements Storage API
BigQuery Performance Improvements Storage APIBigQuery Performance Improvements Storage API
BigQuery Performance Improvements Storage APIAlvaro Viebrantz
 

Semelhante a Performance Codificando Night Week 2016 (20)

Drupal Performance - Dicas e técnicas para levar seu Drupal às nuvens
Drupal Performance - Dicas e técnicas para levar seu Drupal às nuvensDrupal Performance - Dicas e técnicas para levar seu Drupal às nuvens
Drupal Performance - Dicas e técnicas para levar seu Drupal às nuvens
 
Drupal Performance
Drupal PerformanceDrupal Performance
Drupal Performance
 
Xen e CoreOS: solução para data mining com NodeJS e ElasticSearch
Xen e CoreOS: solução para data mining com NodeJS e ElasticSearchXen e CoreOS: solução para data mining com NodeJS e ElasticSearch
Xen e CoreOS: solução para data mining com NodeJS e ElasticSearch
 
Need for (web) speed - Tchelinux Pelotas 2014
Need for (web) speed - Tchelinux Pelotas 2014Need for (web) speed - Tchelinux Pelotas 2014
Need for (web) speed - Tchelinux Pelotas 2014
 
temp EWP
temp EWPtemp EWP
temp EWP
 
Redis um banco chave valor
Redis um banco chave valorRedis um banco chave valor
Redis um banco chave valor
 
Otimização de Desempenho de Websites desenvolvidos em Microsoft ASP.NET e hos...
Otimização de Desempenho de Websites desenvolvidos em Microsoft ASP.NET e hos...Otimização de Desempenho de Websites desenvolvidos em Microsoft ASP.NET e hos...
Otimização de Desempenho de Websites desenvolvidos em Microsoft ASP.NET e hos...
 
Internet sem drama
Internet sem dramaInternet sem drama
Internet sem drama
 
Arquitetando Soluções de Dados com PostgreSQL
Arquitetando Soluções de Dados com PostgreSQLArquitetando Soluções de Dados com PostgreSQL
Arquitetando Soluções de Dados com PostgreSQL
 
Aumente a performance de seu site
Aumente a performance de seu siteAumente a performance de seu site
Aumente a performance de seu site
 
Aumente a performance de seu site de maneira disciplinada
Aumente a performance de seu site de maneira disciplinadaAumente a performance de seu site de maneira disciplinada
Aumente a performance de seu site de maneira disciplinada
 
Tirando leite de pedra
Tirando leite de pedraTirando leite de pedra
Tirando leite de pedra
 
Conhecendo o Django
Conhecendo o DjangoConhecendo o Django
Conhecendo o Django
 
2019 - GUOB MeetUp - Journey to Cloud and DBA Career
2019 - GUOB MeetUp - Journey to Cloud and DBA Career2019 - GUOB MeetUp - Journey to Cloud and DBA Career
2019 - GUOB MeetUp - Journey to Cloud and DBA Career
 
5º Meetup Datalab - Do nada a Produção usando Arquitetura Serverless
5º Meetup Datalab - Do nada a Produção usando Arquitetura Serverless5º Meetup Datalab - Do nada a Produção usando Arquitetura Serverless
5º Meetup Datalab - Do nada a Produção usando Arquitetura Serverless
 
MSTechday - Técnicas e recursos para desenvolvimento web em cenários de grand...
MSTechday - Técnicas e recursos para desenvolvimento web em cenários de grand...MSTechday - Técnicas e recursos para desenvolvimento web em cenários de grand...
MSTechday - Técnicas e recursos para desenvolvimento web em cenários de grand...
 
Otimizacao de websites em PHP
Otimizacao de websites em PHPOtimizacao de websites em PHP
Otimizacao de websites em PHP
 
BigQuery Performance Improvements Storage API
BigQuery Performance Improvements Storage APIBigQuery Performance Improvements Storage API
BigQuery Performance Improvements Storage API
 
NoSQL e Python
NoSQL e PythonNoSQL e Python
NoSQL e Python
 
HTML 5
HTML 5HTML 5
HTML 5
 

Mais de Rodolfo Fadino Junior

Como gerenciar e manter minha equipe engajada [Avance 21]
Como gerenciar e manter minha equipe engajada [Avance 21]Como gerenciar e manter minha equipe engajada [Avance 21]
Como gerenciar e manter minha equipe engajada [Avance 21]Rodolfo Fadino Junior
 
TDC 2019 Clean Architeture com .net core
TDC 2019  Clean Architeture com .net coreTDC 2019  Clean Architeture com .net core
TDC 2019 Clean Architeture com .net coreRodolfo Fadino Junior
 
Mvp conf middlewares com asp.net core
Mvp conf   middlewares com asp.net coreMvp conf   middlewares com asp.net core
Mvp conf middlewares com asp.net coreRodolfo Fadino Junior
 
Desenvolvimento web com .NET Core - Meetup São Carlos
Desenvolvimento web com .NET Core - Meetup São CarlosDesenvolvimento web com .NET Core - Meetup São Carlos
Desenvolvimento web com .NET Core - Meetup São CarlosRodolfo Fadino Junior
 
Design e boas práticas de api's com CSharp
Design e boas práticas de api's com CSharpDesign e boas práticas de api's com CSharp
Design e boas práticas de api's com CSharpRodolfo Fadino Junior
 
Design e boas praticas de apis com CSharp
Design e boas praticas de apis com CSharpDesign e boas praticas de apis com CSharp
Design e boas praticas de apis com CSharpRodolfo Fadino Junior
 
Web Performance Optimization com ASP.NET Core
Web Performance Optimization com ASP.NET CoreWeb Performance Optimization com ASP.NET Core
Web Performance Optimization com ASP.NET CoreRodolfo Fadino Junior
 
Escalabilidade com docker - ASP.NET Conference 2016
Escalabilidade com docker - ASP.NET Conference 2016Escalabilidade com docker - ASP.NET Conference 2016
Escalabilidade com docker - ASP.NET Conference 2016Rodolfo Fadino Junior
 
Fatec-SP Desenvolvendo Web/Mobile para 20 milões de usuários
Fatec-SP Desenvolvendo Web/Mobile para 20 milões de usuáriosFatec-SP Desenvolvendo Web/Mobile para 20 milões de usuários
Fatec-SP Desenvolvendo Web/Mobile para 20 milões de usuáriosRodolfo Fadino Junior
 

Mais de Rodolfo Fadino Junior (20)

Como gerenciar e manter minha equipe engajada [Avance 21]
Como gerenciar e manter minha equipe engajada [Avance 21]Como gerenciar e manter minha equipe engajada [Avance 21]
Como gerenciar e manter minha equipe engajada [Avance 21]
 
Performance tdc sp 2020 final
Performance tdc sp 2020 finalPerformance tdc sp 2020 final
Performance tdc sp 2020 final
 
TDC 2019 Clean Architeture com .net core
TDC 2019  Clean Architeture com .net coreTDC 2019  Clean Architeture com .net core
TDC 2019 Clean Architeture com .net core
 
Mvp conf middlewares com asp.net core
Mvp conf   middlewares com asp.net coreMvp conf   middlewares com asp.net core
Mvp conf middlewares com asp.net core
 
Middlewares com asp.net core
Middlewares com asp.net coreMiddlewares com asp.net core
Middlewares com asp.net core
 
Desenvolvimento web com .NET Core - Meetup São Carlos
Desenvolvimento web com .NET Core - Meetup São CarlosDesenvolvimento web com .NET Core - Meetup São Carlos
Desenvolvimento web com .NET Core - Meetup São Carlos
 
DevXperience WPO com .NET CORE
DevXperience WPO com .NET COREDevXperience WPO com .NET CORE
DevXperience WPO com .NET CORE
 
Design e boas práticas de api's com CSharp
Design e boas práticas de api's com CSharpDesign e boas práticas de api's com CSharp
Design e boas práticas de api's com CSharp
 
Design e boas praticas de apis com CSharp
Design e boas praticas de apis com CSharpDesign e boas praticas de apis com CSharp
Design e boas praticas de apis com CSharp
 
Web Performance Optimization com ASP.NET Core
Web Performance Optimization com ASP.NET CoreWeb Performance Optimization com ASP.NET Core
Web Performance Optimization com ASP.NET Core
 
ASP.NET Core e MVC - Fatec-SP 2016
ASP.NET Core e MVC - Fatec-SP 2016ASP.NET Core e MVC - Fatec-SP 2016
ASP.NET Core e MVC - Fatec-SP 2016
 
Escalabilidade com docker - ASP.NET Conference 2016
Escalabilidade com docker - ASP.NET Conference 2016Escalabilidade com docker - ASP.NET Conference 2016
Escalabilidade com docker - ASP.NET Conference 2016
 
Desenvolvimento Web com ASP.NET MVC
Desenvolvimento Web com ASP.NET MVCDesenvolvimento Web com ASP.NET MVC
Desenvolvimento Web com ASP.NET MVC
 
Fatec-SP Desenvolvendo Web/Mobile para 20 milões de usuários
Fatec-SP Desenvolvendo Web/Mobile para 20 milões de usuáriosFatec-SP Desenvolvendo Web/Mobile para 20 milões de usuários
Fatec-SP Desenvolvendo Web/Mobile para 20 milões de usuários
 
Minha Vida Fiap - Desenvolvimento
Minha Vida Fiap - DesenvolvimentoMinha Vida Fiap - Desenvolvimento
Minha Vida Fiap - Desenvolvimento
 
SignalR Visual Studio Summit
SignalR Visual Studio SummitSignalR Visual Studio Summit
SignalR Visual Studio Summit
 
TDC, Quem derrubou o meu site?
TDC, Quem derrubou o meu site?TDC, Quem derrubou o meu site?
TDC, Quem derrubou o meu site?
 
Entregabilidade e Emails
Entregabilidade e EmailsEntregabilidade e Emails
Entregabilidade e Emails
 
EmberJS + SPA
EmberJS + SPAEmberJS + SPA
EmberJS + SPA
 
Performance Web
Performance WebPerformance Web
Performance Web
 

Performance Codificando Night Week 2016

  • 2. Rodolfo Fadino • Microsoft MVP • Especialista em desenvolvimento web • Tecnologia em Processamento de Dados FATEC-SP • Portal Minha Vida
  • 3.
  • 5. Soma de fatores Back-End • Cache • Thread • Debug/Release • SQL • IO • Network • ... Front-End • CSS • JS • IMG • Headers • Minified • CDN • Proxy • Cookies • ...
  • 6. Vamos fazer um projeto para isso
  • 8. Melhorar a performance é uma responsabilidade nossa (desenvolvedor)
  • 9. Soma de fatores Back-End • Cache • Thread • Debug/Release • SQL • IO • Network • ... Front-End • CSS • JS • IMG • Headers • Minified • CDN • Proxy • Cookies • ...
  • 11. Cache • “A melhor solução de performance é fazer com que o seu código não seja executado o tempo todo!” Tarifa, Alexandre
  • 12.
  • 13. 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)
  • 14.
  • 15. Requests e o Thread Pool Processando Requisições Assíncronas (Garçom restaurante)
  • 16. 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
  • 17. API
  • 20. • “…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)
  • 21. 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
  • 22. Anatomia de uma requisição HTTP • DNS Lookup • Initial Connection – Keep-Alive Header • Time to First Byte • Content Download
  • 23. CSS e JS • Bundling • Minification • CSS – Header • JS – Assíncrono – Mais próximo do final
  • 24.
  • 25. Imagens • Expires – Handler – Imagens fisicas • Lazy Load – Dependendo do cenário • Sprites • Otimizar – RIOT
  • 26.
  • 27. Dicas Rápidas • Debug/Release • UrlRewrite • SQL Plano de execução • Glimpse