SlideShare a Scribd company logo
1 of 88
Wydajność webowa –
jak to ugryźć?
@konradkokosa
blog.kokosa.net
Spis treści
• Czym jest?
• Czemu jest ważna?
• Jak o nią dbać?
• Jak się uczyć?
Wydajność
Czym jest?
Nie ma jednej Wydajności
Wydajność
Wydajność
User Experience
Wydajność
User Experience
wygląd
łatwość użycia
architektura informacji
Wydajność
User Experience
Wydajność
User Experience
Technikalia
Wydajność
User Experience
PercepcjaTechnikalia
Wydajność
User Experience
PercepcjaTechnikalia
Kod
Wydajność
User Experience
PercepcjaTechnikalia
DesignKod
Wydajność
User Experience
PercepcjaTechnikalia
DesignKod
Page load time
„Time to first Tweet”
„Feel time”
Wydajność
User Experience
PercepcjaTechnikalia
DesignKod
Page load time
„Time to first Tweet”
„Feel time”
Trochę Psychologii
~16 ms
~0.1 s
~1.0 s
~2.0 s
~2.0 s
"Response Time in Man-Computer Conversational
Transactions” Robert B. Miller, 1968
>3.0 s
>10.0 s
~4% osób rzuca telefonem
~4% osób rzuca telefonem
85% oczekuje, że nie będzie
hardware się zmienia, ale ludzki
mózg znacznie wolniej - to są liczby
ważne od wieków
Google RAIL
„user-centric performance model”
<100ms <16ms <100 ms <1000 ms
ale... SEO
ale... SEO
ale... SEO
Wydajność
Czemu jest ważna?
Znaczenie Biznesowe
O-o… wolno działa…
Downtime vs Slow-time
•1h strat: 21k USD vs 4k USD (TRAC
Research)
•porzucenia: 9% vs 28% (Akamai)
• “SLOWNESS MAKES YOU HATE
USING THE SERVICE. DOWNTIME
YOU JUST TRY AGAIN LATER.” Lenny
Rachitsky, Product Manager, Airbnb
spadek
odwiedzin/satysfakcji/konwersji
•z 10 do 30 wyników, czas 400 do 900
ms, 25% spadek (Google)
•1 sekunda wolniej – 16% satysfakcji,
7% konwersji (ankieta 116 firm)
•20% porzuca koszyk z powodu
spowolnień
•„42% of men and 35% of women
have decided not to use a company
again as a result of experiencing a
slow website” (ankieta 1500 internautów w
wizerunek
Healthcare.go
v epic fail
"There's no sugar
coating - the website
has been too slow
(…)” President Barack
Obama
Kalkulator1
Performance is a feature
Performance is NOT a feature
Performance is NOT a feature
Wydajność
Jak o nią dbać?
The Performance Golden Rule
„80-90% of the end-user response time is
time is
spent on the frontend. Start there.”
Steve Souders
Waterfall
The Performance Golden Rule*
*) bo zoptymalizowano już backend
Jak mierzyć?
window.onLoad
„Zdarzenie load wywoływane jest na końcu procesu
ładowania dokumentu. W momencie wystąpienia
zdarzenia, DOM zawiera już wszystkie obiekty
zawarte w dokumencie oraz zakończone zostało
wczytywanie obrazków oraz ramek.”
developer.mozilla.org
window.onLoad
„Moving beyond window.onload()” Steve Soude
window.onLoad
„Moving beyond window.onload()” Steve Soude
YSlow, PageInsight, Dev Tools
(Chrome, IE, Firefox)
Boomerang.js
Above the fold
WebPageTest.org
StartRender i SpeedIndex
DEMO
https://speedcurve.com/
heatmap
http://heatmap.webperf.tools/
requestmap
http://requestmap.webperf.tools/
Technikalia
"Premature optimization is the root
root of all evil" Donald Knuth
Rozmiar ma znaczenie
„Your page must fit here”
HttpArchive.org
HttpArchive.org
HttpArchive.org
Obrazki
Co z tymi obrazkami…
•sprite’y
•WebP, JPEX XR, BPG, Flif
•ImageOptim (Mac), smush.it
•LQIP - Low Quality Image
Placeholders
•automatyczny workflow
CDN
HTTP/2
RWD
mobile first
"the fastest request is a request not
made"
Performance Culture
Performance Culture Cop
Performance Culture:
•zaproponować easy-wins
•pokazać biznesowe znaczenie
wydajności np. porównanie WPT z
konkurencją
•zrobić testy A/B eksperymentów
•edukacja
•„2G Tuesdays” w Facebook
Performance Budget
Performance Budget
devs vs designers != estetyka vs
wydajność
Wydajność
Jak się jej uczyć?
O’Reilly
…i to wszystko
Dziękuję za uwagę!
Pytania?!
@konradkokosa
blog.kokosa.net

More Related Content

Similar to Wydajność webowa jak to ugryźć

Koprowski t certyfikacja_a_kariera_it_infomeet
Koprowski t certyfikacja_a_kariera_it_infomeetKoprowski t certyfikacja_a_kariera_it_infomeet
Koprowski t certyfikacja_a_kariera_it_infomeetmagda3695
 
Certyfikacja a Kariera w IT - Self Case Study
Certyfikacja a Kariera w IT - Self Case StudyCertyfikacja a Kariera w IT - Self Case Study
Certyfikacja a Kariera w IT - Self Case StudyTobias Koprowski
 
Jak budujemy inteligentnego asystenta biznesowego
Jak budujemy inteligentnego asystenta biznesowegoJak budujemy inteligentnego asystenta biznesowego
Jak budujemy inteligentnego asystenta biznesowego2040.io
 
KrakSpot #13 Jaromir Działo - Działaj globalnie, czyli Topicmarks w dolinie k...
KrakSpot #13 Jaromir Działo - Działaj globalnie, czyli Topicmarks w dolinie k...KrakSpot #13 Jaromir Działo - Działaj globalnie, czyli Topicmarks w dolinie k...
KrakSpot #13 Jaromir Działo - Działaj globalnie, czyli Topicmarks w dolinie k...Filip Dębowski
 
[PL] Bez trudu i ryzyka! Jak tworzyć przepływy pracy w SharePoint?
[PL] Bez trudu i ryzyka! Jak tworzyć przepływy pracy w SharePoint?[PL] Bez trudu i ryzyka! Jak tworzyć przepływy pracy w SharePoint?
[PL] Bez trudu i ryzyka! Jak tworzyć przepływy pracy w SharePoint?Datapolis
 
Jak wykorzystać nowe technologie w pracy z uczniem zdolnym?
Jak wykorzystać nowe technologie w pracy z uczniem zdolnym?Jak wykorzystać nowe technologie w pracy z uczniem zdolnym?
Jak wykorzystać nowe technologie w pracy z uczniem zdolnym?eTechnologie sp. z o.o.
 
Za dużo informacji, i co dalej? Funnelback - Michał Rachowski Squiz 12.09.12 ...
Za dużo informacji, i co dalej? Funnelback - Michał Rachowski Squiz 12.09.12 ...Za dużo informacji, i co dalej? Funnelback - Michał Rachowski Squiz 12.09.12 ...
Za dużo informacji, i co dalej? Funnelback - Michał Rachowski Squiz 12.09.12 ...Squiz Poland
 
Certyfikacja a Kariera IT - Self Case Study
Certyfikacja a Kariera IT - Self Case StudyCertyfikacja a Kariera IT - Self Case Study
Certyfikacja a Kariera IT - Self Case StudyTobias Koprowski
 
Ux jako odpowiedzialność programisty - Kasia Iwańska
Ux jako odpowiedzialność programisty - Kasia IwańskaUx jako odpowiedzialność programisty - Kasia Iwańska
Ux jako odpowiedzialność programisty - Kasia IwańskaThe Awwwesomes
 
Oprogramowanie. Sprzęt. Komplet.-prezentacja otwierająca
Oprogramowanie. Sprzęt. Komplet.-prezentacja otwierającaOprogramowanie. Sprzęt. Komplet.-prezentacja otwierająca
Oprogramowanie. Sprzęt. Komplet.-prezentacja otwierającaAlicja Sieminska
 
Od Produktywności do Sabotażu - Sławomir Radzymiński, KraQA #31
Od Produktywności do Sabotażu - Sławomir Radzymiński, KraQA #31Od Produktywności do Sabotażu - Sławomir Radzymiński, KraQA #31
Od Produktywności do Sabotażu - Sławomir Radzymiński, KraQA #31kraqa
 
Event-driven architecture, the easy way.pdf
Event-driven architecture, the easy way.pdfEvent-driven architecture, the easy way.pdf
Event-driven architecture, the easy way.pdfMichał Kurzeja
 
Jak sobie radzić, gdy praktyka mija się z teorią. Czyli o zamalowywaniu szaro...
Jak sobie radzić, gdy praktyka mija się z teorią. Czyli o zamalowywaniu szaro...Jak sobie radzić, gdy praktyka mija się z teorią. Czyli o zamalowywaniu szaro...
Jak sobie radzić, gdy praktyka mija się z teorią. Czyli o zamalowywaniu szaro...Jakub Ochodek
 

Similar to Wydajność webowa jak to ugryźć (20)

Koprowski t certyfikacja_a_kariera_it_infomeet
Koprowski t certyfikacja_a_kariera_it_infomeetKoprowski t certyfikacja_a_kariera_it_infomeet
Koprowski t certyfikacja_a_kariera_it_infomeet
 
Certyfikacja a Kariera w IT - Self Case Study
Certyfikacja a Kariera w IT - Self Case StudyCertyfikacja a Kariera w IT - Self Case Study
Certyfikacja a Kariera w IT - Self Case Study
 
Jak budujemy inteligentnego asystenta biznesowego
Jak budujemy inteligentnego asystenta biznesowegoJak budujemy inteligentnego asystenta biznesowego
Jak budujemy inteligentnego asystenta biznesowego
 
KrakSpot #13 Jaromir Działo - Działaj globalnie, czyli Topicmarks w dolinie k...
KrakSpot #13 Jaromir Działo - Działaj globalnie, czyli Topicmarks w dolinie k...KrakSpot #13 Jaromir Działo - Działaj globalnie, czyli Topicmarks w dolinie k...
KrakSpot #13 Jaromir Działo - Działaj globalnie, czyli Topicmarks w dolinie k...
 
[PL] Bez trudu i ryzyka! Jak tworzyć przepływy pracy w SharePoint?
[PL] Bez trudu i ryzyka! Jak tworzyć przepływy pracy w SharePoint?[PL] Bez trudu i ryzyka! Jak tworzyć przepływy pracy w SharePoint?
[PL] Bez trudu i ryzyka! Jak tworzyć przepływy pracy w SharePoint?
 
8 jaromir dzialo
8 jaromir dzialo8 jaromir dzialo
8 jaromir dzialo
 
Jak wykorzystać nowe technologie w pracy z uczniem zdolnym?
Jak wykorzystać nowe technologie w pracy z uczniem zdolnym?Jak wykorzystać nowe technologie w pracy z uczniem zdolnym?
Jak wykorzystać nowe technologie w pracy z uczniem zdolnym?
 
Za dużo informacji, i co dalej? Funnelback - Michał Rachowski Squiz 12.09.12 ...
Za dużo informacji, i co dalej? Funnelback - Michał Rachowski Squiz 12.09.12 ...Za dużo informacji, i co dalej? Funnelback - Michał Rachowski Squiz 12.09.12 ...
Za dużo informacji, i co dalej? Funnelback - Michał Rachowski Squiz 12.09.12 ...
 
Certyfikacja a Kariera IT - Self Case Study
Certyfikacja a Kariera IT - Self Case StudyCertyfikacja a Kariera IT - Self Case Study
Certyfikacja a Kariera IT - Self Case Study
 
university day 1
university day 1university day 1
university day 1
 
Ux jako odpowiedzialność programisty - Kasia Iwańska
Ux jako odpowiedzialność programisty - Kasia IwańskaUx jako odpowiedzialność programisty - Kasia Iwańska
Ux jako odpowiedzialność programisty - Kasia Iwańska
 
WarszawQA_#9
WarszawQA_#9WarszawQA_#9
WarszawQA_#9
 
Oprogramowanie. Sprzęt. Komplet.-prezentacja otwierająca
Oprogramowanie. Sprzęt. Komplet.-prezentacja otwierającaOprogramowanie. Sprzęt. Komplet.-prezentacja otwierająca
Oprogramowanie. Sprzęt. Komplet.-prezentacja otwierająca
 
Od Produktywności do Sabotażu - Sławomir Radzymiński, KraQA #31
Od Produktywności do Sabotażu - Sławomir Radzymiński, KraQA #31Od Produktywności do Sabotażu - Sławomir Radzymiński, KraQA #31
Od Produktywności do Sabotażu - Sławomir Radzymiński, KraQA #31
 
Event-driven architecture, the easy way.pdf
Event-driven architecture, the easy way.pdfEvent-driven architecture, the easy way.pdf
Event-driven architecture, the easy way.pdf
 
Jak sobie radzić, gdy praktyka mija się z teorią. Czyli o zamalowywaniu szaro...
Jak sobie radzić, gdy praktyka mija się z teorią. Czyli o zamalowywaniu szaro...Jak sobie radzić, gdy praktyka mija się z teorią. Czyli o zamalowywaniu szaro...
Jak sobie radzić, gdy praktyka mija się z teorią. Czyli o zamalowywaniu szaro...
 
Jaki framework wybrać
Jaki framework wybraćJaki framework wybrać
Jaki framework wybrać
 
User Experience – wpływ internetu na aplikacje enterprise - Netcamp #14
User Experience – wpływ internetu na aplikacje enterprise - Netcamp #14User Experience – wpływ internetu na aplikacje enterprise - Netcamp #14
User Experience – wpływ internetu na aplikacje enterprise - Netcamp #14
 
Html5 i css3
Html5 i css3Html5 i css3
Html5 i css3
 
Zwinny_Analityk_SIW_Panel
Zwinny_Analityk_SIW_PanelZwinny_Analityk_SIW_Panel
Zwinny_Analityk_SIW_Panel
 

More from Konrad Kokosa

A miało być tak... bez wycieków
A miało być tak... bez wyciekówA miało być tak... bez wycieków
A miało być tak... bez wyciekówKonrad Kokosa
 
Narysuj Swoją Karierę IT - Konrad Kokosa
Narysuj Swoją Karierę IT - Konrad KokosaNarysuj Swoją Karierę IT - Konrad Kokosa
Narysuj Swoją Karierę IT - Konrad KokosaKonrad Kokosa
 
ETW w służbie programisty .NET
ETW w służbie programisty .NETETW w służbie programisty .NET
ETW w służbie programisty .NETKonrad Kokosa
 
ETW w służbie programisty .NET
ETW w służbie programisty .NETETW w służbie programisty .NET
ETW w służbie programisty .NETKonrad Kokosa
 
Zarzadzanie pamiecia w .NET - WDI
Zarzadzanie pamiecia w .NET - WDIZarzadzanie pamiecia w .NET - WDI
Zarzadzanie pamiecia w .NET - WDIKonrad Kokosa
 
WG.NET 90 - Testy obciążeniowe – co, jak, czym?
WG.NET 90 - Testy obciążeniowe – co, jak, czym?WG.NET 90 - Testy obciążeniowe – co, jak, czym?
WG.NET 90 - Testy obciążeniowe – co, jak, czym?Konrad Kokosa
 

More from Konrad Kokosa (6)

A miało być tak... bez wycieków
A miało być tak... bez wyciekówA miało być tak... bez wycieków
A miało być tak... bez wycieków
 
Narysuj Swoją Karierę IT - Konrad Kokosa
Narysuj Swoją Karierę IT - Konrad KokosaNarysuj Swoją Karierę IT - Konrad Kokosa
Narysuj Swoją Karierę IT - Konrad Kokosa
 
ETW w służbie programisty .NET
ETW w służbie programisty .NETETW w służbie programisty .NET
ETW w służbie programisty .NET
 
ETW w służbie programisty .NET
ETW w służbie programisty .NETETW w służbie programisty .NET
ETW w służbie programisty .NET
 
Zarzadzanie pamiecia w .NET - WDI
Zarzadzanie pamiecia w .NET - WDIZarzadzanie pamiecia w .NET - WDI
Zarzadzanie pamiecia w .NET - WDI
 
WG.NET 90 - Testy obciążeniowe – co, jak, czym?
WG.NET 90 - Testy obciążeniowe – co, jak, czym?WG.NET 90 - Testy obciążeniowe – co, jak, czym?
WG.NET 90 - Testy obciążeniowe – co, jak, czym?
 

Wydajność webowa jak to ugryźć

Editor's Notes

  1. Wspomnieć o Millennium, o PerfOps i ogarnianiu aplikacji
  2. - Ile developerów webowych? - ile osób ma poczucie, ze w ich firmach dba się o wydajność - a ile osób ma w firmach jakiś proces, choćby najprostszy, dbający o wydajność chcę ewangelizować o wydajności - W banku Millennium od paru lat się tym zajmuje i nazbierało mi się przemyśleń
  3. mobilna, desktop, różne łącza, ekrany
  4. Główny przekaz - Nie jest sctricte technicznym aspektem – dlatego bardzo się cieszę, że jednocześnie ze mną Marcin od UX
  5. Jakob Nielsen – jeden z najbardziej znanych specjalistów w dziedzinie użyteczności Ludzki mózg działa tak samo od wieków – musimy być tego świadomi mówiąc o percepcji
  6. 60 fps
  7. natychmiastowa, tak działa nasza pamięć sensoryczna
  8. jeszcze trzymamy nasze myśli w ryzach
  9. Zaczynają się schody – ludzie zaczynają tracić koncentrację, porzucają stronę
  10. Zaczynają się schody – ludzie zaczynają tracić koncentrację, porzucają stronę
  11. 30% opuści stronę!
  12. myśli nam już pobłądziły i zapewne stronę zamkniemy, tu kończy się czas życia pamięci krótkotrwałej
  13. myśli nam już pobłądziły i zapewne stronę zamkniemy, tu kończy się czas życia pamięci krótkotrwałej
  14. myśli nam już pobłądziły i zapewne stronę zamkniemy, tu kończy się czas życia pamięci krótkotrwałej
  15. myśli nam już pobłądziły i zapewne stronę zamkniemy, tu kończy się czas życia pamięci krótkotrwałej
  16. To jest dla nas dobre bo możemy przekonać naszych szefów, że to strata $$$
  17. czujecie to, prezydent USA tłumaczy się z wolnej strony?! 1 X 2013
  18. XI 2014 - Firma Nabino – p. Agnieszka, studentka
  19. Czy ktoś z Was się z nim nie zgadza?
  20. Możemy mieć taką tendencję jako programiści, że profilujemy backendy
  21. http://www.webpagetest.org/result/160114_9X_183A/1/details/
  22. Efekt ogromnych optymalizacji backendu!
  23. Oki – stajemy przed problemem, musimy jakoś zmierzyć czy nasza strona „wolno/szybko działa”. Kilka wydajność – mierzyć w świadomym kontekście.
  24. Jednak ogrom narzędzi używa właśnie tej metryki 
  25. mPulse - RUM
  26. maile z raportami, widgety na stronach
  27. Oczywiście nie rzucamy się na wszystko, nie usuwamy spacji z CSS jeśli nie widzimy, że to jest realny problem!
  28. Często to nie jest rocket science – rozmiar ma znaczenie
  29. - bandwidth vs latency - taxi vs bus na buspasie on mobile latency by 500ms pozostawia 1-1.5s na resztę - (żart z drukiem 3D)
  30. Obrazki – bardzo ważne
  31. format (przezroczystość) progresive JPEG
  32. JPEG, PNG – strasznie starymi
  33. Więcej niż serwowanie jQuery – oni biorą na siebie ten workflow, header Accept Akamai, CloudFlare
  34. Walczy z latency - Pipelining request, kompresja nagłówków HTTP, server push, priorytetyzacja
  35. Walczy z latency - Pipelining request, kompresja nagłówków HTTP, server push, priorytetyzacja
  36. Stara dewiza – cachowanie!
  37. trudniejsza niż technikalia, jak przekonać ludzi/zarząd, jak egzekwować
  38. trudniejsza niż technikalia, jak przekonać ludzi/zarząd, jak egzekwować
  39. trudniejsza niż technikalia, jak przekonać ludzi/zarząd, jak egzekwować
  40. maile z raportami, widgety na stronach
  41. - maile z raportami, widgety na stronach - Kwartet Anscombe'a to zestaw czterech zestawów danych o identycznych cechach statystycznych, takich jak średnia arytmetyczna, wariancja,współczynnik korelacji czy równanie regresji liniowej
  42. Oczywiście – PluralSight, blogi, konferencje, itd..
  43. Velocity!
  44. maile z raportami, widgety na stronach