engineering html5 applications for better...
TRANSCRIPT
![Page 1: EnGiNeErInG HtMl5 aPpLiCaTiOnS fOr bEtTeR pErFoRmAnCegotocon.com/dl/goto-aar-2013/slides/LauriSvan... · 2013-10-03 · CPU Display Connection Network Speed / bps CPU / MFLOPS Pixels](https://reader034.vdocuments.us/reader034/viewer/2022050603/5faa487aba1e9d3f3b2287da/html5/thumbnails/1.jpg)
HtMl5 eXpErTiSe aT yOuR sErViCe
LaUrI SvAn @lAuRiSvAn Sc5 OnLiNe @sC5
EnGiNeErInG HtMl5 aPpLiCaTiOnS fOr bEtTeR pErFoRmAnCe
![Page 2: EnGiNeErInG HtMl5 aPpLiCaTiOnS fOr bEtTeR pErFoRmAnCegotocon.com/dl/goto-aar-2013/slides/LauriSvan... · 2013-10-03 · CPU Display Connection Network Speed / bps CPU / MFLOPS Pixels](https://reader034.vdocuments.us/reader034/viewer/2022050603/5faa487aba1e9d3f3b2287da/html5/thumbnails/2.jpg)
“GiVe mE sOmEtHiNg tHaT I cAn UsE”
![Page 3: EnGiNeErInG HtMl5 aPpLiCaTiOnS fOr bEtTeR pErFoRmAnCegotocon.com/dl/goto-aar-2013/slides/LauriSvan... · 2013-10-03 · CPU Display Connection Network Speed / bps CPU / MFLOPS Pixels](https://reader034.vdocuments.us/reader034/viewer/2022050603/5faa487aba1e9d3f3b2287da/html5/thumbnails/3.jpg)
15 YeArS ReTrOsPeCtIvE oF My PeRsOnAl GeAr 1000 tImEs tHe sPeEd iN 15 yEaRs
CPU Display Connection Network
Speed / bps CPU /
MFLOPS Pixels
1994 80486 640x480 modem 14,400 3 307,200
1999 AMD Athlon 500 1024x768 ISDN 128,000 180 786,432
2003 AMD Athlon Tbird 1600x1200 cable modem 300,000 373 1,920,000
2010 Intel Core i5 HDMI cable modem 4,000,000 4,256 4,096,000
![Page 4: EnGiNeErInG HtMl5 aPpLiCaTiOnS fOr bEtTeR pErFoRmAnCegotocon.com/dl/goto-aar-2013/slides/LauriSvan... · 2013-10-03 · CPU Display Connection Network Speed / bps CPU / MFLOPS Pixels](https://reader034.vdocuments.us/reader034/viewer/2022050603/5faa487aba1e9d3f3b2287da/html5/thumbnails/4.jpg)
1000 tImEs tHe CpU, 20 tImEs tHe BaNdWiDtH tO DrAw a PiXeL
web pages?
slow web pages!
pre.y good pages (in desktop)
![Page 5: EnGiNeErInG HtMl5 aPpLiCaTiOnS fOr bEtTeR pErFoRmAnCegotocon.com/dl/goto-aar-2013/slides/LauriSvan... · 2013-10-03 · CPU Display Connection Network Speed / bps CPU / MFLOPS Pixels](https://reader034.vdocuments.us/reader034/viewer/2022050603/5faa487aba1e9d3f3b2287da/html5/thumbnails/5.jpg)
Or eVeN 20 tImEs fAsTeR?
So Do wE FeEl OuR ApPs rUn 1000 tImEs fAsTeR?
![Page 6: EnGiNeErInG HtMl5 aPpLiCaTiOnS fOr bEtTeR pErFoRmAnCegotocon.com/dl/goto-aar-2013/slides/LauriSvan... · 2013-10-03 · CPU Display Connection Network Speed / bps CPU / MFLOPS Pixels](https://reader034.vdocuments.us/reader034/viewer/2022050603/5faa487aba1e9d3f3b2287da/html5/thumbnails/6.jpg)
3 tImEs fAsTeR?
![Page 7: EnGiNeErInG HtMl5 aPpLiCaTiOnS fOr bEtTeR pErFoRmAnCegotocon.com/dl/goto-aar-2013/slides/LauriSvan... · 2013-10-03 · CPU Display Connection Network Speed / bps CPU / MFLOPS Pixels](https://reader034.vdocuments.us/reader034/viewer/2022050603/5faa487aba1e9d3f3b2287da/html5/thumbnails/7.jpg)
We gOt uSeD To CrEaTiNg SlUgGiSh WeB SeRvIcEs At tHe SaMe tImE, ApPlE dElIvErEd a SlIcK ApP ExPeRiEnCe
ı 7
2005 2007 2009 2011 2013
Web
1G Smartphone
iPhone
PC
UsEr eXpErIeNcE
![Page 8: EnGiNeErInG HtMl5 aPpLiCaTiOnS fOr bEtTeR pErFoRmAnCegotocon.com/dl/goto-aar-2013/slides/LauriSvan... · 2013-10-03 · CPU Display Connection Network Speed / bps CPU / MFLOPS Pixels](https://reader034.vdocuments.us/reader034/viewer/2022050603/5faa487aba1e9d3f3b2287da/html5/thumbnails/8.jpg)
We hAvE TrAdEd PeRfOrMaNcE fOr EvErYtHiNg ElSe
• Distributing the data & computation far away personal computing à web services à mobile & cloud
• Consuming increasingly rich data Text à Images à Videos
• Moving to highly abstracted & interpreted languages C à Java à JavaScript
![Page 9: EnGiNeErInG HtMl5 aPpLiCaTiOnS fOr bEtTeR pErFoRmAnCegotocon.com/dl/goto-aar-2013/slides/LauriSvan... · 2013-10-03 · CPU Display Connection Network Speed / bps CPU / MFLOPS Pixels](https://reader034.vdocuments.us/reader034/viewer/2022050603/5faa487aba1e9d3f3b2287da/html5/thumbnails/9.jpg)
WeB SiTeS StIlL GeT BiGgEr NoV 2010- SePt 2013 StAtS, HtTp ArChIvE / StEvE SoUdErS
![Page 10: EnGiNeErInG HtMl5 aPpLiCaTiOnS fOr bEtTeR pErFoRmAnCegotocon.com/dl/goto-aar-2013/slides/LauriSvan... · 2013-10-03 · CPU Display Connection Network Speed / bps CPU / MFLOPS Pixels](https://reader034.vdocuments.us/reader034/viewer/2022050603/5faa487aba1e9d3f3b2287da/html5/thumbnails/10.jpg)
MoBiLe DeViCeS - 5 yEaRs BaCk iN CpU SpEeD, 10 yEaRs BaCk iN CoNnEcTiOn BaNdWiDtH
Samsung
Galaxy S4 My Machine
(2003) My Machine
(2010) CPU / MFLOPS 1500 373 4,256 Display / Pixels 2073600 1,920,000 4,096,000 Connection Speed / bps 384000* 300,000 4,000,000
* Assuming 3G/UMTS safe speed, due to low adopNon of 4G networks
![Page 11: EnGiNeErInG HtMl5 aPpLiCaTiOnS fOr bEtTeR pErFoRmAnCegotocon.com/dl/goto-aar-2013/slides/LauriSvan... · 2013-10-03 · CPU Display Connection Network Speed / bps CPU / MFLOPS Pixels](https://reader034.vdocuments.us/reader034/viewer/2022050603/5faa487aba1e9d3f3b2287da/html5/thumbnails/11.jpg)
2005 2007 2009 2011 2013
Web
iPhone
HTML5
HtMl5 & WeB ApPs To ChAlLeNgE NaTiVe ApPs iN SlIcKnEsS
ı 11
UsEr eXpErIeNcE
UNlizing HW accelerated graphics,
offline assets, advanced gestures and high perf JS
engines
![Page 12: EnGiNeErInG HtMl5 aPpLiCaTiOnS fOr bEtTeR pErFoRmAnCegotocon.com/dl/goto-aar-2013/slides/LauriSvan... · 2013-10-03 · CPU Display Connection Network Speed / bps CPU / MFLOPS Pixels](https://reader034.vdocuments.us/reader034/viewer/2022050603/5faa487aba1e9d3f3b2287da/html5/thumbnails/12.jpg)
LeT’s TaRgEt fOr MoBiLe ApP PeRfOrMaNcE
• 1s app startup time (first page load time) • 1s for any subsequent view/page (reasonable delay) • 100ms UI response time (noticeable delay) • 16ms paints (LCDs will refresh 50-60Hz, the rest is surplus)
![Page 13: EnGiNeErInG HtMl5 aPpLiCaTiOnS fOr bEtTeR pErFoRmAnCegotocon.com/dl/goto-aar-2013/slides/LauriSvan... · 2013-10-03 · CPU Display Connection Network Speed / bps CPU / MFLOPS Pixels](https://reader034.vdocuments.us/reader034/viewer/2022050603/5faa487aba1e9d3f3b2287da/html5/thumbnails/13.jpg)
HTML5 App • 1000 DOM elements • 1Mb of images and 100
network requests on page load
How about these? • 1s first page fold
Native App • 1000 widgets? • 1Mb of images and 100
network requests on app startup?
• 1s application install?
WeB eNgInEs aRe qUiTe fAsT! LeT’s uSe tHe sAmE yArDsTiCk wHeN mEaSuRiNg
![Page 14: EnGiNeErInG HtMl5 aPpLiCaTiOnS fOr bEtTeR pErFoRmAnCegotocon.com/dl/goto-aar-2013/slides/LauriSvan... · 2013-10-03 · CPU Display Connection Network Speed / bps CPU / MFLOPS Pixels](https://reader034.vdocuments.us/reader034/viewer/2022050603/5faa487aba1e9d3f3b2287da/html5/thumbnails/14.jpg)
If yOuR eMuLaToR rUnS 20 tImEs fAsTeR tHaN tHe TaRgEt, wHaT cAn yOu eXpEcT aBoUt PeRfOrMaNcE?
![Page 15: EnGiNeErInG HtMl5 aPpLiCaTiOnS fOr bEtTeR pErFoRmAnCegotocon.com/dl/goto-aar-2013/slides/LauriSvan... · 2013-10-03 · CPU Display Connection Network Speed / bps CPU / MFLOPS Pixels](https://reader034.vdocuments.us/reader034/viewer/2022050603/5faa487aba1e9d3f3b2287da/html5/thumbnails/15.jpg)
LeT’s EnGiNeEr tHe WeB ApPs tHe SaMe wAy ApPs ArE EnGiNeErEd
![Page 16: EnGiNeErInG HtMl5 aPpLiCaTiOnS fOr bEtTeR pErFoRmAnCegotocon.com/dl/goto-aar-2013/slides/LauriSvan... · 2013-10-03 · CPU Display Connection Network Speed / bps CPU / MFLOPS Pixels](https://reader034.vdocuments.us/reader034/viewer/2022050603/5faa487aba1e9d3f3b2287da/html5/thumbnails/16.jpg)
oNe-sEcOnD PaGe LoAdS
![Page 17: EnGiNeErInG HtMl5 aPpLiCaTiOnS fOr bEtTeR pErFoRmAnCegotocon.com/dl/goto-aar-2013/slides/LauriSvan... · 2013-10-03 · CPU Display Connection Network Speed / bps CPU / MFLOPS Pixels](https://reader034.vdocuments.us/reader034/viewer/2022050603/5faa487aba1e9d3f3b2287da/html5/thumbnails/17.jpg)
OnE SeCoNd BuDgEt
• Turn on radio 300ms!• DNS lookup + 150ms!• SSL handshake + 200ms!• Process & load HTML & other resources + 200ms!• Parse à Layout à Paint = 150ms!
![Page 18: EnGiNeErInG HtMl5 aPpLiCaTiOnS fOr bEtTeR pErFoRmAnCegotocon.com/dl/goto-aar-2013/slides/LauriSvan... · 2013-10-03 · CPU Display Connection Network Speed / bps CPU / MFLOPS Pixels](https://reader034.vdocuments.us/reader034/viewer/2022050603/5faa487aba1e9d3f3b2287da/html5/thumbnails/18.jpg)
SiMuLaTe SlOw PaGe SpEeDs • Developers tend to have ultra-fast computers & networks and forget
the Egde & 3G network • Tip: Network Link Conditioner XCode Plugin & ipfw rules
![Page 19: EnGiNeErInG HtMl5 aPpLiCaTiOnS fOr bEtTeR pErFoRmAnCegotocon.com/dl/goto-aar-2013/slides/LauriSvan... · 2013-10-03 · CPU Display Connection Network Speed / bps CPU / MFLOPS Pixels](https://reader034.vdocuments.us/reader034/viewer/2022050603/5faa487aba1e9d3f3b2287da/html5/thumbnails/19.jpg)
A sImPlE sImUlAtIoN ShElL ScRiPt #!/bin/sh!#!# simulate_3g.sh - Simulate a sluggish 3G network with delays & packet loss!
# Usage: simulate_3g.sh 8080 8081!!# Make sure only root can run our script!if [[ $EUID -ne 0 ]]; then! echo "This script must be run as root" 1>&2! exit 1!
fi!!# Simulate http over 3G, 300kbit/s with 5% packet loss and 200ms delays!# into all ports given as a parameter!ipfw pipe 1 config delay 200 plr 0.1 bw 300kbit/s!for var in "$@"!
do! ipfw add 1 pipe 1 dst-port $var!done!
![Page 20: EnGiNeErInG HtMl5 aPpLiCaTiOnS fOr bEtTeR pErFoRmAnCegotocon.com/dl/goto-aar-2013/slides/LauriSvan... · 2013-10-03 · CPU Display Connection Network Speed / bps CPU / MFLOPS Pixels](https://reader034.vdocuments.us/reader034/viewer/2022050603/5faa487aba1e9d3f3b2287da/html5/thumbnails/20.jpg)
CoMbInE aNd CoMpReSs yOuR ReSoUrCeS
• Combine and minify your CSS and JavaScript • Combine small icons into a sprite sheet • Squeeze the last bits from your images: It is much easier to
remove 100k from your images than your JavaScript code!
• Tip: You should automate this, e.g. using Grunt
![Page 21: EnGiNeErInG HtMl5 aPpLiCaTiOnS fOr bEtTeR pErFoRmAnCegotocon.com/dl/goto-aar-2013/slides/LauriSvan... · 2013-10-03 · CPU Display Connection Network Speed / bps CPU / MFLOPS Pixels](https://reader034.vdocuments.us/reader034/viewer/2022050603/5faa487aba1e9d3f3b2287da/html5/thumbnails/21.jpg)
CaChInG tHe AsSeTs
• CDNs for caching assets close to the user • Varnish, Squid, Nginx etc. in front of your app server • Having the CDNs and caches working requires good
headers from your app server, too • Tip: Let your Apache/Nginx reverse proxy care for your
headers, they usually do it much better than you do
Cache-Control: public, max-age=0 !Etag: "91580-1380653643000“ !Last-Modified: Tue, 01 Oct 2013 18:54:03 GMT!
![Page 22: EnGiNeErInG HtMl5 aPpLiCaTiOnS fOr bEtTeR pErFoRmAnCegotocon.com/dl/goto-aar-2013/slides/LauriSvan... · 2013-10-03 · CPU Display Connection Network Speed / bps CPU / MFLOPS Pixels](https://reader034.vdocuments.us/reader034/viewer/2022050603/5faa487aba1e9d3f3b2287da/html5/thumbnails/22.jpg)
ShArD fOr SeVeRaL DoMaInS
• Modern browsers limit to 6 connections per host your non-scripted resources (e.g. CSS, images) from several hosts
• Severe problem because HTTP 1.1 requires the resources to be sent in the order they were requested
• Note: Remember the browser security rules, particularly
CORS and Same-origin policy
![Page 23: EnGiNeErInG HtMl5 aPpLiCaTiOnS fOr bEtTeR pErFoRmAnCegotocon.com/dl/goto-aar-2013/slides/LauriSvan... · 2013-10-03 · CPU Display Connection Network Speed / bps CPU / MFLOPS Pixels](https://reader034.vdocuments.us/reader034/viewer/2022050603/5faa487aba1e9d3f3b2287da/html5/thumbnails/23.jpg)
If yOu StIlL gOt TiMe tO OpTiMiZe PaGe LoAdS
• Optimize for the first page fold: Critical CSS and JS embeded
• Optimize for connection drops & offline: Application Cache • Batch your API calls • Serve responsive images, prepare for the W3C adaptive
images extension !<img alt="The Breakfast Combo” src="banner.jpeg” ! !srcset="banner-HD.jpeg 2x, ! !banner-phone.jpeg 100w, ! !banner-phone-HD.jpeg 100w 2x”>!
![Page 24: EnGiNeErInG HtMl5 aPpLiCaTiOnS fOr bEtTeR pErFoRmAnCegotocon.com/dl/goto-aar-2013/slides/LauriSvan... · 2013-10-03 · CPU Display Connection Network Speed / bps CPU / MFLOPS Pixels](https://reader034.vdocuments.us/reader034/viewer/2022050603/5faa487aba1e9d3f3b2287da/html5/thumbnails/24.jpg)
60 fRaMeS ScRoLl aNd AnImAtIoN
![Page 25: EnGiNeErInG HtMl5 aPpLiCaTiOnS fOr bEtTeR pErFoRmAnCegotocon.com/dl/goto-aar-2013/slides/LauriSvan... · 2013-10-03 · CPU Display Connection Network Speed / bps CPU / MFLOPS Pixels](https://reader034.vdocuments.us/reader034/viewer/2022050603/5faa487aba1e9d3f3b2287da/html5/thumbnails/25.jpg)
OlD-ScHoOl OpTiMiZaTiOnS WoN’t HeLp YoU
• JavaScript is typically not your problem • CSS selector lengths typically have only a minor impact • Browsers spend ~90% of its computation layouting and
painting
What you want to track is • The causes of relayout and repainting • What their costs are • Tip: Watch out adding/removing classes & hovering
![Page 26: EnGiNeErInG HtMl5 aPpLiCaTiOnS fOr bEtTeR pErFoRmAnCegotocon.com/dl/goto-aar-2013/slides/LauriSvan... · 2013-10-03 · CPU Display Connection Network Speed / bps CPU / MFLOPS Pixels](https://reader034.vdocuments.us/reader034/viewer/2022050603/5faa487aba1e9d3f3b2287da/html5/thumbnails/26.jpg)
“TyPiCaL PaInT LoOp” FuncNon call / Event
Recalculate Style
Layout
Paint
Composite Layers
JavaScript Engine (CPU / Virtual Machine)
Render Tree & Layout Engine (CPU)
Paint Engine (CPU)
Compositor (GPU)
![Page 27: EnGiNeErInG HtMl5 aPpLiCaTiOnS fOr bEtTeR pErFoRmAnCegotocon.com/dl/goto-aar-2013/slides/LauriSvan... · 2013-10-03 · CPU Display Connection Network Speed / bps CPU / MFLOPS Pixels](https://reader034.vdocuments.us/reader034/viewer/2022050603/5faa487aba1e9d3f3b2287da/html5/thumbnails/27.jpg)
AlL CsS OpErAtIoNs aReN’t EqUaL
• Geometry changing ops: Layout, repaint, compositing • width, height etc…
• Paint-only ops: Repaint & compositing only • borders, outlines, box shadow, etc…
• Composition only (or less): Things that are 100% in GPU • CSS3 Transforms, Opacity
![Page 28: EnGiNeErInG HtMl5 aPpLiCaTiOnS fOr bEtTeR pErFoRmAnCegotocon.com/dl/goto-aar-2013/slides/LauriSvan... · 2013-10-03 · CPU Display Connection Network Speed / bps CPU / MFLOPS Pixels](https://reader034.vdocuments.us/reader034/viewer/2022050603/5faa487aba1e9d3f3b2287da/html5/thumbnails/28.jpg)
OpTiMiZiNg LaYoUtS & PaInTs
• Avoid DOM reads after geometry changing DOM operations
• Avoid a few expensive paint operations (shadows, border radius, flexbox etc…)
• Use translateZ(0) hack if you need a HW accelerated element
• Use CSS3 transforms for animating, they will not cause reflows
![Page 29: EnGiNeErInG HtMl5 aPpLiCaTiOnS fOr bEtTeR pErFoRmAnCegotocon.com/dl/goto-aar-2013/slides/LauriSvan... · 2013-10-03 · CPU Display Connection Network Speed / bps CPU / MFLOPS Pixels](https://reader034.vdocuments.us/reader034/viewer/2022050603/5faa487aba1e9d3f3b2287da/html5/thumbnails/29.jpg)
1/10 sEcOnD tO ReSpOnD, OnE sEcOnD tO sHoW ThE rEsUlTs
![Page 30: EnGiNeErInG HtMl5 aPpLiCaTiOnS fOr bEtTeR pErFoRmAnCegotocon.com/dl/goto-aar-2013/slides/LauriSvan... · 2013-10-03 · CPU Display Connection Network Speed / bps CPU / MFLOPS Pixels](https://reader034.vdocuments.us/reader034/viewer/2022050603/5faa487aba1e9d3f3b2287da/html5/thumbnails/30.jpg)
TrAdItIoNaL PaGeS DoN’t Do aNyThInG uNtIl yOu TeLl
*click* *click*
Tradi&onal
![Page 31: EnGiNeErInG HtMl5 aPpLiCaTiOnS fOr bEtTeR pErFoRmAnCegotocon.com/dl/goto-aar-2013/slides/LauriSvan... · 2013-10-03 · CPU Display Connection Network Speed / bps CPU / MFLOPS Pixels](https://reader034.vdocuments.us/reader034/viewer/2022050603/5faa487aba1e9d3f3b2287da/html5/thumbnails/31.jpg)
ImMeDiAtE FeEdBaCk bUyS YoU tImE OvErAlL pErFoRmAnCe mAy gEt fAsTeR, tOo
*click* *click*
Feedback
![Page 32: EnGiNeErInG HtMl5 aPpLiCaTiOnS fOr bEtTeR pErFoRmAnCegotocon.com/dl/goto-aar-2013/slides/LauriSvan... · 2013-10-03 · CPU Display Connection Network Speed / bps CPU / MFLOPS Pixels](https://reader034.vdocuments.us/reader034/viewer/2022050603/5faa487aba1e9d3f3b2287da/html5/thumbnails/32.jpg)
PrElOaDiNg & BoOtStRaPpInG To ShOw tHe NeXt PaGe FaStEr YoU MaY HuRt YoUrSeLf BaD!
*click*
+
*click*
Preloading
Bootstrapping
![Page 33: EnGiNeErInG HtMl5 aPpLiCaTiOnS fOr bEtTeR pErFoRmAnCegotocon.com/dl/goto-aar-2013/slides/LauriSvan... · 2013-10-03 · CPU Display Connection Network Speed / bps CPU / MFLOPS Pixels](https://reader034.vdocuments.us/reader034/viewer/2022050603/5faa487aba1e9d3f3b2287da/html5/thumbnails/33.jpg)
LaZy LoAd - OpTiMiZiNg fOr tHe FiRsT PaGe FoLd
+ +
1st fold inlined Rest of the page as separate resources
+
Lazy Load
![Page 34: EnGiNeErInG HtMl5 aPpLiCaTiOnS fOr bEtTeR pErFoRmAnCegotocon.com/dl/goto-aar-2013/slides/LauriSvan... · 2013-10-03 · CPU Display Connection Network Speed / bps CPU / MFLOPS Pixels](https://reader034.vdocuments.us/reader034/viewer/2022050603/5faa487aba1e9d3f3b2287da/html5/thumbnails/34.jpg)
PeRfOrMaNcE iS nO ExCePtIoN. At sOmE pOiNt yOuR aRcHiTeCtUrE wIlL fIgHt aGaInSt yOu.
QuAlItY AtTrIbUtEs oF yOuR aPp aRe sEt bY yOuR ArChItEcTuRe.
![Page 35: EnGiNeErInG HtMl5 aPpLiCaTiOnS fOr bEtTeR pErFoRmAnCegotocon.com/dl/goto-aar-2013/slides/LauriSvan... · 2013-10-03 · CPU Display Connection Network Speed / bps CPU / MFLOPS Pixels](https://reader034.vdocuments.us/reader034/viewer/2022050603/5faa487aba1e9d3f3b2287da/html5/thumbnails/35.jpg)
ReCaP: GeTtInG tO tHe pErFoRmAnCe tArGeTs
• Set the performance goals, prepare for tradeoffs • Track the goals from the beginning • Don’t guess; measure • Simulate the target performance as part of your daily work • Keep your code simple, don’t trade it for performance • Perfect is the enemy of the good
![Page 36: EnGiNeErInG HtMl5 aPpLiCaTiOnS fOr bEtTeR pErFoRmAnCegotocon.com/dl/goto-aar-2013/slides/LauriSvan... · 2013-10-03 · CPU Display Connection Network Speed / bps CPU / MFLOPS Pixels](https://reader034.vdocuments.us/reader034/viewer/2022050603/5faa487aba1e9d3f3b2287da/html5/thumbnails/36.jpg)
ThAt’s AlL!
AnY QuEsTiOnS?
![Page 37: EnGiNeErInG HtMl5 aPpLiCaTiOnS fOr bEtTeR pErFoRmAnCegotocon.com/dl/goto-aar-2013/slides/LauriSvan... · 2013-10-03 · CPU Display Connection Network Speed / bps CPU / MFLOPS Pixels](https://reader034.vdocuments.us/reader034/viewer/2022050603/5faa487aba1e9d3f3b2287da/html5/thumbnails/37.jpg)
HtMl5 eXpErTiSe aT yOuR sErViCe
LaUrI SvAn
ThAnK yOu !
Software Architect, SC5 Online Ltd https://github.com/laurisvan https://twitter.com/laurisvan