Optimizando la Performance en la
              Web



                  http://blogs.msdn.com/aiturralde
Agenda
•   ¿Por qué es importante el rendimiento?
•   Desafíos comunes de rendimiento
•   Analizando problemas de rendimiento
•   Tácticas para Mejorar el Rendimiento
http://blog.kissmetrics.com/loading-time/
− No son problemas exclusivos de ASP .NET
Región            Average Round-Trip Time (ms)   Average Packet Loss (%)
Africa                            469                        3.70
Australia                         204                        0.23
Balkans                           202                        0.74
Central Asia                      597                        1.24
East Asia                         192                        0.68
Europa                            178                        0.48
Latin America                     270                        1.15
Middle East                       279                        0.87
North America                      59                        0.09
Russia                            243                        2.48
South Asia                        424                        1.89
South East Asia                   254                        0.03
HTML

                    Recurso de la página
Archivos




           Tiempo
− Mal patrón de asignación
− Leaks de memoria
http://www.fiddler2.com

http://bit.ly/JF3osx

http://bit.ly/JvrrGz
http://bit.ly/L9MGir

http://bit.ly/vZldlT

http://bit.ly/JeocF5

http://bit.ly/H8ntr0
SELECT P.FirstName, P.LastName,
SC.AccountNumber, SC.ModifiedDate
FROM Sales.Customer AS SC
JOIN Person.Person P
ON SC.PersonID =
P.BusinessEntityID
WHERE P.LastName in ('Adams')
ORDER BY P.LastName, P.FirstName ;
Query 1 Se compila y se almacena en el cache
Select * from Person.Address where AddressID in
(1, 2)

Query 2 Se compila y se almacena en el cache
Select * from Person.Address where AddressID in
(2, 1)

Query 3 Se reutiliza
Select * from Person.Address where AddressID in
(1, 2)
SELECT qs.sql_handle, qs.statement_start_offset,
qs.statement_end_offset
, qs.creation_time, qs.last_execution_time,
SUBSTRING(qt.text,qs.statement_start_offset/2+1,
                    (CASE WHEN qs.statement_end_offset = -1
                          THEN LEN(CONVERT(nvarchar(max), qt.text)) * 2
                          ELSE qs.statement_end_offset end -
                                qs.statement_start_offset
                    )/2
                ) AS query_text
            FROM sys.dm_exec_query_stats qs
               CROSS APPLY sys.dm_exec_sql_text(qs.sql_handle) qt
dbcc freesystemcache('all')
Msdn   optimizando la performance en la web
Msdn   optimizando la performance en la web
Msdn   optimizando la performance en la web
Msdn   optimizando la performance en la web
Msdn   optimizando la performance en la web
Msdn   optimizando la performance en la web
Msdn   optimizando la performance en la web
Msdn   optimizando la performance en la web
Msdn   optimizando la performance en la web
Msdn   optimizando la performance en la web
Msdn   optimizando la performance en la web
Msdn   optimizando la performance en la web
Msdn   optimizando la performance en la web
Msdn   optimizando la performance en la web
Msdn   optimizando la performance en la web
Msdn   optimizando la performance en la web
Msdn   optimizando la performance en la web
Msdn   optimizando la performance en la web
Msdn   optimizando la performance en la web
Msdn   optimizando la performance en la web
Msdn   optimizando la performance en la web
Msdn   optimizando la performance en la web

Msdn optimizando la performance en la web

Notas del editor

  • #39 Enviar info de compiled linq query para EF.
  • #41 Enviar info de compiled linq query para EF.