SlideShare ist ein Scribd-Unternehmen logo
1 von 69
Step By Step Mobile Optimization

Guy Podjarny
@guypod
http://www.guypo.com/            Akamai Confidential
Agenda

• Review Primary Tools
• Introduce Demo Mobile Site
• Optimize Site in 5 steps
 •   Describe a problem
 •   Show its impact
 •   Discuss the cause
 •   Try out one or more solutions
• Summary
• Q&A

                                     Faster ForwardTM   ©2012 Akamai
Disclaimers

• Performance Numbers are never perfect
 • Numbers vary widely for any given website
 • In this deck, the numbers are helpers, not absolutes
• This presentation focuses on Mobile
 • Focus is on problems more common in Mobile websites
 • I’m intentionally not tackling common Front-End Optimization
• This presentation focuses on dedicated Mobile websites
 • I won’t be discussing Responsive Web Design (RWD) here
 • If you want to learn about RWD performance, come back tomorrow



                                 Faster ForwardTM                   ©2012 Akamai
Faster ForwardTM
                   The Tools
                        ©2012 Akamai
Waterfall Chart
                                                      Doc Complete,
Waterfall                        Resource
                                                      (a.k.a. onload,
Chart                            (Request/Response)
                  Start Render                        Load Time)




                             Faster ForwardTM                ©2012 Akamai
WebPageTest

                                 • Free Perf
                                   Measurement Tool
                                  • www.webpagetest.org
                                 • Open Source
                                  • Can be privately installed
                                 • Desktop Browsers
                                  • IE 6-9, Chrome, Firefox
                                 • Uses Traffic Shaping
                                  • Over faster networks


              Faster ForwardTM                       ©2012 Akamai
“Mobile”-izing WebPageTest with Scripts
• Use Chrome or Firefox as agent
 • Chrome more similar to real mobile browsers
• Resize window to smartphone size
 • setviewportsize    320 480
 • No way to fake a Retina display
• Fake a smartphone user-agent
 • setUserAgent <Some-Smartphone-UA>
 • Doesn’t update navigator.userAgent
• Navigate to the relevant site…
 • navigate      http://www.your-site.com/


                                Faster ForwardTM   ©2012 Akamai
Akamai Mobitest

• Free Mobile Web Perf
  Measurement Tool
 • http://mobitest.akamai.com/
• Open-Source
 • http://bit.ly/open-source-mobitest
• Mobile Browsers
 • iOS, Android
• No Traffic Shaping
• Builds on WebPageTest
 • Can share a single server



                                        Faster ForwardTM   ©2012 Akamai
iOS 6 Network Link Conditioner – On Device!

                                              How to Enable:
                                              http://www.neglecte
                                              dpotential.com/201
                                              2/09/ios6-network-
                                              link-conditioner/




                        Faster ForwardTM               ©2012 Akamai
Introduction: SLowe’s Commerce

• Demo eCommerce application
 • with dedicated Mobile site


• Built on Magento
 • Took the Magento Demo Site
 • Made some slight modifications




                                Faster ForwardTM   ©2012 Akamai
Initial Waterfall Chart

• URL:
  www.slowes.org
• Device: iPhone 4
• OS: iOS 6
• Speed: 3G
 • Apple’s Definition
 • Throttled with Network Link
   Conditioner




                                 Faster ForwardTM   ©2012 Akamai
Initial Filmstrip
• 16 seconds to start render
• 18 seconds to
  “Visually Complete”




                               Faster ForwardTM   ©2012 Akamai
• Slide about redirects, maybe an eschel drawing?




Step 1:
Redirects                  Faster ForwardTM         ©2012 Akamai
JavaScript Redirect - The Good

                                                  mobileDetect.js:




• Client-side browser detection
• Easy to deploy
 • Compared to server changes
• “Future Friendly”
 • Can test screen width alongside UAs

                                    Faster ForwardTM                 ©2012 Akamai
Client-Side Detection Often Recommended
Nokia:




Mobify:




                          Faster ForwardTM   ©2012 Akamai
JavaScript Redirect – The Bad

• Slow!
 • Redirect only happens after
   JS is downloaded and executed
• Unnecessary download of
  other resources
 • Some above the JS in the HTML
 • Some downloaded early by speculative parser




                                   Faster ForwardTM   ©2012 Akamai
JS Redirect => HTTP Redirect
mobileDetect.js                                             Apache




                                                              CDN




          Fallback:
  Inline Script on Desktop page                      CMS/App Server




                                  Faster ForwardTM         ©2012 Akamai
Optimization Results - Waterfall

• Real page starts loading
  after ~1.5 secs vs 5.5 secs
 • ~4 Seconds saved


• No downloading of excess
  CSS and JS

• All Good: Less requests,
  less bytes, less delay


                             Faster ForwardTM   ©2012 Akamai
Optimization Results - Visual
• ~5 seconds acceleration to start render




                           Faster ForwardTM   ©2012 Akamai
Merging Redirect Chains
                                                   Only one redirect
• Combine all redirects to one redirect




• Requires combining Application and Mobile logic

                                                     Mobile Logic
  ^/(?:magento/)?(.*)   /magento/


                                                   Application Logic

                                Faster ForwardTM              ©2012 Akamai
Avoiding Redirects: Serving Client-Specific HTML
• Instead of redirecting, return client-aware HTML
 • Same URL returns HTML by client
 • Caution: Caching appliances & CDNs must be tuned
 • Requires consistent paths across all variations




                        No Redirect

                              Faster ForwardTM        ©2012 Akamai
Step 1: Conclusions

• Redirects have a real cost
 • Especially in high latency mobile networks
• HTTP Redirects are much faster than JS Redirects
 • Use HTTP Redirects
 • Use JS Redirects as backup only
• 1 Redirect is faster than… more than 1 redirect
 • Merge redirect chains whenever possible
• No redirects are faster than even 1 redirect!
 • Consider serving different HTML to different clients on one site


                                  Faster ForwardTM                    ©2012 Akamai
Step 2:
Faster ForwardTM
                   Compression
                           ©2012 Akamai
Lack of HTTP Compression (Gzip)




           160 KB (!!!)
No Gzip



                          Faster ForwardTM   ©2012 Akamai
Solution: Apply Compression

• Gzip compression built into most elements in the stack
 • App Server, Web Server, Load Balancer, CDN…




                             Faster ForwardTM              ©2012 Akamai
Compression matters more on Mobile!

• Mobile websites have less images
 • JS & CSS account for more of the bytes
 • Therefore, more of the bytes is compressible
 • Therefore, compression matters more on Mobile.
• (Practically) all mobile browsers support compression
 • Kinda true on desktop these days
• Download bandwidth on mobile is smaller than broadband
• Latency on mobile is higher on broadband



                                Faster ForwardTM          ©2012 Akamai
TCP Slow Start (diagrams from John Rauser)

     Early TCP                  Slow Start               Delayed ACK




                         Max Packet Size: 1460 bytes
http://velocityconf.com/velocity2010/public/schedule/detail/11792
                                  Faster Forward
                                         TM
                                                                    ©2012 Akamai
TCP Slow Start (diagrams from John Rauser)

                                    • Time to deliver ~72KB:
                                      • Fiber (4ms RTT): ~24ms
                                      • DSL (50ms RTT): ~300ms
                                      • 3G (200ms RTT): 1.2 seconds (!!!)
                                    • Time to deliver ~300KB:
                                      • Fiber (4ms RTT): ~40ms
                                      • DSL (50ms RTT): ~500ms
                                      • 3G (200ms RTT): 2 seconds (!!!)
                                    • Slow-Start is per connection


http://velocityconf.com/velocity2010/public/schedule/detail/11792
                                  Faster Forward
                                        TM
                                                                    ©2012 Akamai
Step 2: Conclusions

• Compression is a critical optimization
• Easy to implement, especially in Mobile
 • All mobile browsers (that you care about) support it
• Especially important on Mobile
 • Compressible content (JS,CSS…) accounts for a bigger part of the page
 • High latency makes large download slow
 • High packet loss makes large downloads unbearable




                                  Faster ForwardTM                  ©2012 Akamai
Step 3: Consolidation
 Faster ForwardTM   ©2012 Akamai
Step 3: Fragmented JS/CSS Files

                                          2 CSS Files


                                          16 JS Files




                       Faster ForwardTM          ©2012 Akamai
Step 3: Consolidate CSS & JS Files




                        Faster ForwardTM   ©2012 Akamai
Step 3: Consolidate JS/CSS Files - Visual

Fragmented




Consolidated




               Consolidation made it worse!

                          Faster ForwardTM    ©2012 Akamai
Consolidated vs. Fragmented - Test



                                                • 1 consolidated script
                                                • ~1 MB in size


• 10 scripts, with IDs from 1 - 10
• Each script weights ~100 KB
• Each script ends with:
 • document.write('Processed file ID @, time is ' + new Date());
                                  Faster ForwardTM                        ©2012 Akamai
Consolidated vs. Fragmented - Result
               Consolidated             Fragmented




Fragmented


Consolidated

                              Starts painting ~5
                               seconds earlier!
                                Faster ForwardTM     ©2012 Akamai
Consolidation & Progressive Processing

• Browsers only process JavaScript & CSS when fully loaded
 • Unlike HTML, which is processed (roughly) as soon as it arrives
• Consolidation delays the first script execution, CSS evaluation
 • Especially with many scripts of varying sizes
 • Possibly not always true for CSS
• This means Consolidation often delays dynamic requests
 • Generated by scripts, thus not seen until execution
 • Often results in a slower page
• Making consolidating “streaming” is doable, but hard
 • http://www.guypo.com/uncategorized/consolidation-not-simple-addition/

                                 Faster ForwardTM                    ©2012 Akamai
Step 3a: Async Scripts

• Defer external script execution to onload
 • Often useful to defer download as well!
• Replace dependent inline scripts with event handlers
 • Invoked in “onload” of appropriate external script
 • No need to touch inline scripts with no dependencies
• Complications:
 • Scripts required for basic page functionality
 • Scripts that use document.write()
 • 3rd party scripts (you don’t know what they use…)
• Complications not as common in simpler mobile websites

                                 Faster ForwardTM         ©2012 Akamai
Step 3a: Simulation – remove combined.js




                                           No Visual
                                           Difference!


                        Faster ForwardTM        ©2012 Akamai
Step 3: Conclusions
• Consolidation is good and bad
 • Good: Reduces roundtrips
 • Bad: Hurts caching, progressive processing
• Consolidate with Care
 • Merge small files together, especially if functionally related
 • If you can, use Adaptive and Streaming Consolidation
    • http://www.guypo.com/uncategorized/consolidation-not-simple-addition/
• Procrastinate - Defer as much as you can
 • Often easier to do on Mobile websites
• Measure!!!


                                    Faster ForwardTM                          ©2012 Akamai
Step 4:
Faster ForwardTM   Retina Images
                           ©2012 Akamai
Retina Images




                bg_header_retina.png – 56 KB
            1                                  2

            3                                  4
                    bg_header.png –
                    14KB


                          Faster ForwardTM         ©2012 Akamai
Lossless Image Compression

                                          • “Image Minification”
Retina:                                   • Sheds bytes without
                                            reducing quality
                                          • Sample techniques:
                                           •   Remove Geo data
                                           •   Remove Histogram data
Regular:                                   •   Remove unused colors
                                           •   Replace GIF with PNG-8
                                           •   …



                       Faster ForwardTM                           ©2012 Akamai
Lossy Image Compression

• Reduce quality without hurting User Experience
• For Desktop, reduce to high-end screen resolution
• For Mobile, reduce to display size & resolution
 • Known as “Responsive Images”

 Image    Origina   Lossless        “Desktop”         Reduce to      Reduce to
          l         Compression     Resolution        320px wide     128px wide

 Retina    56KB     48.2KB (14%)    26.6KB (53%)      6.8 KB (88%)   2.2KB (96%)

 Regula    14KB     11.5KB (18%)       7KB (50%)       7KB (50%)     2.2KB (85%)
 r
                                   Faster ForwardTM                     ©2012 Akamai
Responsive Images


                                                               128px,
                                                 240px, 6.8 KB 2.9 KB
                       320px, 10.6 KB

      480px, 21.3 KB

Site:
lonelyplanet.com
Device:
iPhone 4
Before:
867 KB
After:
570 KB                                      Full Res, 50.1 KB
                       Faster   ForwardTM                       ©2012 Akamai
Standardizing Responsive Images
                           @srcset



                          <picture>




             https://github.com/scottjehl/picturefill
                            Faster Forward
                                     TM
                                                        ©2012 Akamai
Responsive Images - Summary
• Smaller screens don’t benefit from high quality images
• Solution: Respond to screen size by reducing image quality
• Screen size detection usually done on client side
 • But same technique can be used on server-side
 • Examples: Sencha.io Src (Free), Akamai EIM (Commercial)
• Don’t forget CSS background images!
 • Implementation is easier – with a few catches we’ll discuss later…
• Optional: Lazy-load higher quality images
 • May defer them to onload
 • May load them on demand

                                 Faster ForwardTM                       ©2012 Akamai
Step 4a: Banner Image Compression impact


No Image
Optimization:



Lossy
Compression:



No Retina
Image:

                         Faster ForwardTM    ©2012 Akamai
Step 4: Conclusions

• Mobile screen size & resolution are an opportunity & a threat
 • Opportunity: Reduce bytes on smaller screens
 • Threat: Using Retina images broadly
• Lossless Image Compression should be a given
 • No trade-offs, just do it.
• Lossy Comp/Responsive Images avoid excessive quality
 • Avoid images too big for a user to appreciate (on this device)
 • Optionally load low quality images first, high quality images at onload
• Measure!!!
 • Show your designers the UX impact of every image quality change

                                  Faster ForwardTM                       ©2012 Akamai
iPhone Optimization: Summary
            Faster ForwardTM   ©2012 Akamai
Interim Summary - Actions
• Step 1: Improved Redirects
 • Replaced JS Redirect with HTTP Redirect
 • Merged redirect chains
• Step 2: Applied HTTP Compression
• Step 3: Consolidated JavaScript and CSS files
 • Async’d JavaScript files too
• Step 4: Compressed Images
 • Lossless Compression
 • Lossy Compression
 • No Retina Images


                                  Faster ForwardTM   ©2012 Akamai
Interim Summary - Acceleration




      Browsing www.slowes.org (including app redirect)
                          Faster ForwardTM               ©2012 Akamai
Step 5:
Android


          Faster ForwardTM   ©2012 Akamai
Testing on Android

• No network Throttling on-device
 • iOS had the same problem until a few weeks ago (with iOS 6)
• Alternative: Tether to laptop, throttle there
 • Instructions on how to tether: http://pcapperf.appspot.com/
 • Unfortunately, newer Androids can’t connect through laptop
• Realistic alternative: Test w/out throttling
 • No 3G load times, but can find interesting data in Waterfall chart
 • Use Real User Measurement to monitor real world numbers
 • Use Mobitest for Android Browser, Remote Debugging for Chrome



                                 Faster ForwardTM                       ©2012 Akamai
Step 5: Android Test




 22 files
                                 Strange gap
 (vs. 14                          (~200 ms)
   on
iPhone)

                                               # Connections
                                                   Limit




            Both Retina &
             regular reqs
                            Faster ForwardTM                   ©2012 Akamai
Duplicate Requests on Android – Tim Kadlec’s Test




http://timkadlec.com/2012/04/media-query-asset-downloading-results/
                                        Faster Forward
                                                  TM
                                                                      ©2012 Akamai
Duplicate Requests on Android – Slowe’s

                                           …




                                           …




                        Faster ForwardTM       ©2012 Akamai
Duplicate Requests - Solution
• One solution works (almost) everywhere…
 • As long as you support media queries…




                               Faster ForwardTM   ©2012 Akamai
Step 5a: Eliminate Duplicate Requests - Results




                         Faster ForwardTM         ©2012 Akamai
Android
 Mind the Gap…
• Theories                                                          Strange gap
 • It’s the weak mobile device…                                      (~200 ms)

     • But it doesn’t happen on iPhone!        Chrome
 • It’s the old Android browser…
     • Harder to test Chrome for Android
     • Let’s test with desktop Chrome
 • Ok, let’s test on Chrome for Android…
     • Using Remote Debugging                            Chrome for Android
      • https://developers.google.com/chrome
      /mobile/docs/debugging
    • On Nexus 7 Tablet, No gap!


                                     Faster ForwardTM                             ©2012 Akamai
Problem: Translate3D
                                                     combined.css
“The translate3d() CSS function
moves the position of the
element in the 3D space. This
transformation is characterized
by a 3-dimension vector whose
coordinates define how much it
moves in each direction”




                                  Faster ForwardTM       ©2012 Akamai
Step 5b: Remove translate3d calls
Chrome                              Android




                                                         Gap a tiny bit
                                                       smaller (~170 ms)




   • Results on iPhone, Nexus Tablet remain unchanged
     • Issue seems to occur only when Hardware Acceleration is not supported

                                    Faster ForwardTM                       ©2012 Akamai
Step 5: Conclusions

• Not all (mobile) browsers/devices are the same
 • Even if they’re WebKit based
• Don’t optimize things you’re not doing
 • Especially if you’re using hacks to do the optimization
• Say it with me: MEASURE!!!
 • In Mobile, you have to test on multiple devices
 • Android devices vary by OS Version, OEM, device…
 • Use analytics to find your top clients,




                                  Faster ForwardTM           ©2012 Akamai
Use Analytics to determine YOUR top devices

  Google Analytics




                        Faster ForwardTM      ©2012 Akamai
Summary
• Summary




            Faster ForwardTM   ©2012 Akamai
What have we done?

• We optimized one home page in 5 steps:
 •   Step 1: Redirect Optimization
 •   Step 2: HTTP Optimization
 •   Step 3: JS/CSS Optimization
 •   Step 4: Image Optimization
 •   Step 5: Cross-Device Optimization
• We MEASURED during each step
 • Assuming less-than-stellar network conditions
• We made the page ~5x faster


                                  Faster ForwardTM   ©2012 Akamai
Manual FEO

        Original                        Optimized




          Original
         Original
      Original
     Original
   Original
 Original
Original




                     Faster ForwardTM          ©2012 Akamai
Automated FEO                         Pixie Dust

                 Slow,
 Web          Generic HTML
Server



• Automates much of the optimization process
 • Can’t fix everything, but can save a lot of effort
• Doesn’t replace performance awareness                 * Visual from
 • For example, measuring…                              Patrick Meenan
                                   Faster ForwardTM         ©2012 Akamai
Final Words

• A mobile page with few images != A fast page
• Mobile Site Common Pitfalls:
 • Slow and repeated redirects
 • Excess JavaScript & CSS
• Mobile Site Opportunities:
 • Reduce image size: Smaller Screen
 • Defer JS: Simpler content can be visually complete without it
• Measuring Is Critical
 • Test on different devices and browsers
 • Should be built into QA & Build System regression tests

                                 Faster ForwardTM                  ©2012 Akamai
Thank You!
                    Questions?

    Step By Step Mobile Optimization

Guy Podjarny
@guypod
http://www.guypo.com/            Akamai Confidential

Weitere ähnliche Inhalte

Was ist angesagt?

Seatwave Web Peformance Optimisation Case Study
Seatwave Web Peformance Optimisation Case StudySeatwave Web Peformance Optimisation Case Study
Seatwave Web Peformance Optimisation Case StudyStephen Thair
 
Aptimize SharePoint Datasheet
Aptimize SharePoint DatasheetAptimize SharePoint Datasheet
Aptimize SharePoint DatasheetArmand Sultantono
 
Imagesandvideo stockholm webmeetup
Imagesandvideo stockholm webmeetupImagesandvideo stockholm webmeetup
Imagesandvideo stockholm webmeetupDoug Sillars
 
10+апреля+лучшие+практики+и+инновации+вадим+береговский+akamai
10+апреля+лучшие+практики+и+инновации+вадим+береговский+akamai10+апреля+лучшие+практики+и+инновации+вадим+береговский+akamai
10+апреля+лучшие+практики+и+инновации+вадим+береговский+akamaielenae00
 
Cloud Performance: Guide to Tackling Cloud Latency [Cloud Connect - Chicago 2...
Cloud Performance: Guide to Tackling Cloud Latency [Cloud Connect - Chicago 2...Cloud Performance: Guide to Tackling Cloud Latency [Cloud Connect - Chicago 2...
Cloud Performance: Guide to Tackling Cloud Latency [Cloud Connect - Chicago 2...Strangeloop
 
Imagesandvideo stockholm fastandbeautiful
Imagesandvideo stockholm fastandbeautifulImagesandvideo stockholm fastandbeautiful
Imagesandvideo stockholm fastandbeautifulDoug Sillars
 
Vertically Challenged
Vertically ChallengedVertically Challenged
Vertically ChallengedAurynn Shaw
 
Threadneedle when its just too slow
Threadneedle when its just too slowThreadneedle when its just too slow
Threadneedle when its just too slowDoug Sillars
 
Amazon Simple Work Flow Engine (SWF): How Beamr uses SWF for video optimizati...
Amazon Simple Work Flow Engine (SWF): How Beamr uses SWF for video optimizati...Amazon Simple Work Flow Engine (SWF): How Beamr uses SWF for video optimizati...
Amazon Simple Work Flow Engine (SWF): How Beamr uses SWF for video optimizati...Amazon Web Services
 
High Performance Web - Full Stack Toronto
High Performance Web - Full Stack TorontoHigh Performance Web - Full Stack Toronto
High Performance Web - Full Stack TorontoMaximiliano Firtman
 
Testing Mobile App Performance MOT Edinburgh
Testing Mobile App Performance MOT EdinburghTesting Mobile App Performance MOT Edinburgh
Testing Mobile App Performance MOT EdinburghDoug Sillars
 
Comet and the Rise of Highly Interactive Websites
Comet and the Rise of Highly Interactive WebsitesComet and the Rise of Highly Interactive Websites
Comet and the Rise of Highly Interactive WebsitesJoe Walker
 
Mot cph when its just too slow
Mot cph when its just too slowMot cph when its just too slow
Mot cph when its just too slowDoug Sillars
 
Velocity 2013: Extreme Image Optimization
Velocity 2013: Extreme Image OptimizationVelocity 2013: Extreme Image Optimization
Velocity 2013: Extreme Image OptimizationAkamai Technologies
 
Nantes when its just too slow
Nantes when its just too slowNantes when its just too slow
Nantes when its just too slowDoug Sillars
 
Show104 buried treasure
Show104 buried treasureShow104 buried treasure
Show104 buried treasureMark Myers
 

Was ist angesagt? (18)

Apache performance
Apache performanceApache performance
Apache performance
 
Faster web pages
Faster web pagesFaster web pages
Faster web pages
 
Seatwave Web Peformance Optimisation Case Study
Seatwave Web Peformance Optimisation Case StudySeatwave Web Peformance Optimisation Case Study
Seatwave Web Peformance Optimisation Case Study
 
Aptimize SharePoint Datasheet
Aptimize SharePoint DatasheetAptimize SharePoint Datasheet
Aptimize SharePoint Datasheet
 
Imagesandvideo stockholm webmeetup
Imagesandvideo stockholm webmeetupImagesandvideo stockholm webmeetup
Imagesandvideo stockholm webmeetup
 
10+апреля+лучшие+практики+и+инновации+вадим+береговский+akamai
10+апреля+лучшие+практики+и+инновации+вадим+береговский+akamai10+апреля+лучшие+практики+и+инновации+вадим+береговский+akamai
10+апреля+лучшие+практики+и+инновации+вадим+береговский+akamai
 
Cloud Performance: Guide to Tackling Cloud Latency [Cloud Connect - Chicago 2...
Cloud Performance: Guide to Tackling Cloud Latency [Cloud Connect - Chicago 2...Cloud Performance: Guide to Tackling Cloud Latency [Cloud Connect - Chicago 2...
Cloud Performance: Guide to Tackling Cloud Latency [Cloud Connect - Chicago 2...
 
Imagesandvideo stockholm fastandbeautiful
Imagesandvideo stockholm fastandbeautifulImagesandvideo stockholm fastandbeautiful
Imagesandvideo stockholm fastandbeautiful
 
Vertically Challenged
Vertically ChallengedVertically Challenged
Vertically Challenged
 
Threadneedle when its just too slow
Threadneedle when its just too slowThreadneedle when its just too slow
Threadneedle when its just too slow
 
Amazon Simple Work Flow Engine (SWF): How Beamr uses SWF for video optimizati...
Amazon Simple Work Flow Engine (SWF): How Beamr uses SWF for video optimizati...Amazon Simple Work Flow Engine (SWF): How Beamr uses SWF for video optimizati...
Amazon Simple Work Flow Engine (SWF): How Beamr uses SWF for video optimizati...
 
High Performance Web - Full Stack Toronto
High Performance Web - Full Stack TorontoHigh Performance Web - Full Stack Toronto
High Performance Web - Full Stack Toronto
 
Testing Mobile App Performance MOT Edinburgh
Testing Mobile App Performance MOT EdinburghTesting Mobile App Performance MOT Edinburgh
Testing Mobile App Performance MOT Edinburgh
 
Comet and the Rise of Highly Interactive Websites
Comet and the Rise of Highly Interactive WebsitesComet and the Rise of Highly Interactive Websites
Comet and the Rise of Highly Interactive Websites
 
Mot cph when its just too slow
Mot cph when its just too slowMot cph when its just too slow
Mot cph when its just too slow
 
Velocity 2013: Extreme Image Optimization
Velocity 2013: Extreme Image OptimizationVelocity 2013: Extreme Image Optimization
Velocity 2013: Extreme Image Optimization
 
Nantes when its just too slow
Nantes when its just too slowNantes when its just too slow
Nantes when its just too slow
 
Show104 buried treasure
Show104 buried treasureShow104 buried treasure
Show104 buried treasure
 

Andere mochten auch

Delta++ Reducing The Size Of Android Application Updates
Delta++ Reducing The Size Of Android Application UpdatesDelta++ Reducing The Size Of Android Application Updates
Delta++ Reducing The Size Of Android Application UpdatesPapitha Velumani
 
Android Media Player Development
Android Media Player DevelopmentAndroid Media Player Development
Android Media Player DevelopmentTalentica Software
 
3D Video Programming for Android
3D Video Programming for Android3D Video Programming for Android
3D Video Programming for AndroidYoss Cohen
 
Types Of Sentences Ppt
Types Of Sentences PptTypes Of Sentences Ppt
Types Of Sentences PptMarie Semrow
 
Sentence Structure Ppt
Sentence Structure PptSentence Structure Ppt
Sentence Structure Pptandycinek
 
Types Of Sentences
Types Of SentencesTypes Of Sentences
Types Of Sentencesmelissagkh
 

Andere mochten auch (7)

Delta++ Reducing The Size Of Android Application Updates
Delta++ Reducing The Size Of Android Application UpdatesDelta++ Reducing The Size Of Android Application Updates
Delta++ Reducing The Size Of Android Application Updates
 
Android Media Player Development
Android Media Player DevelopmentAndroid Media Player Development
Android Media Player Development
 
3D Video Programming for Android
3D Video Programming for Android3D Video Programming for Android
3D Video Programming for Android
 
Types Of Sentences Ppt
Types Of Sentences PptTypes Of Sentences Ppt
Types Of Sentences Ppt
 
Sentence Structure Ppt
Sentence Structure PptSentence Structure Ppt
Sentence Structure Ppt
 
Sentence structure powerpoint
Sentence structure powerpointSentence structure powerpoint
Sentence structure powerpoint
 
Types Of Sentences
Types Of SentencesTypes Of Sentences
Types Of Sentences
 

Ähnlich wie Step by Step Mobile Optimization

Performance Implications of Mobile Design (Perf Audience Edition)
Performance Implications of Mobile Design (Perf Audience Edition)Performance Implications of Mobile Design (Perf Audience Edition)
Performance Implications of Mobile Design (Perf Audience Edition)Guy Podjarny
 
Velocity spa faster_092116
Velocity spa faster_092116Velocity spa faster_092116
Velocity spa faster_092116Manuel Alvarez
 
Making Single Page Applications (SPA) faster
Making Single Page Applications (SPA) faster Making Single Page Applications (SPA) faster
Making Single Page Applications (SPA) faster Boris Livshutz
 
Boston Web Performance Meetup: The Render Chain and You
Boston Web Performance Meetup: The Render Chain and YouBoston Web Performance Meetup: The Render Chain and You
Boston Web Performance Meetup: The Render Chain and Youmattringel
 
Implementing Aqua Ion - Chris Schultz, Digi-Key
Implementing Aqua Ion - Chris Schultz, Digi-KeyImplementing Aqua Ion - Chris Schultz, Digi-Key
Implementing Aqua Ion - Chris Schultz, Digi-KeyAkamai Technologies
 
Front End Optimization [Cloud Connect 2012]
Front End Optimization [Cloud Connect 2012]Front End Optimization [Cloud Connect 2012]
Front End Optimization [Cloud Connect 2012]Strangeloop
 
Clone your Network with OpenNebula
Clone your Network with OpenNebulaClone your Network with OpenNebula
Clone your Network with OpenNebulaNETWAYS
 
OpenNebulaConf 2013 - Keynote: Clone your Network with OpenNebula by Thomas H...
OpenNebulaConf 2013 - Keynote: Clone your Network with OpenNebula by Thomas H...OpenNebulaConf 2013 - Keynote: Clone your Network with OpenNebula by Thomas H...
OpenNebulaConf 2013 - Keynote: Clone your Network with OpenNebula by Thomas H...OpenNebula Project
 
Akamai 如何幫您的客戶用網站賺錢 how to monetize your site
Akamai 如何幫您的客戶用網站賺錢 how to monetize your siteAkamai 如何幫您的客戶用網站賺錢 how to monetize your site
Akamai 如何幫您的客戶用網站賺錢 how to monetize your site零壹科技股份有限公司
 
Responsive Web Demo with Akamai
Responsive Web Demo with AkamaiResponsive Web Demo with Akamai
Responsive Web Demo with AkamaiFran Albaladejo
 
Akamai company profile
Akamai company profileAkamai company profile
Akamai company profilerahulp9999
 
O'Reilly webcast: Joshua Bixby on Mobile Performance Trends and Predictions
O'Reilly webcast: Joshua Bixby on Mobile Performance Trends and PredictionsO'Reilly webcast: Joshua Bixby on Mobile Performance Trends and Predictions
O'Reilly webcast: Joshua Bixby on Mobile Performance Trends and PredictionsStrangeloop
 
The Dark Side of Single Page Applications
The Dark Side of Single Page ApplicationsThe Dark Side of Single Page Applications
The Dark Side of Single Page ApplicationsDor Kalev
 
PhoneGap Day EU 2017: Hybrid Ember Apps
PhoneGap Day EU 2017: Hybrid Ember AppsPhoneGap Day EU 2017: Hybrid Ember Apps
PhoneGap Day EU 2017: Hybrid Ember AppsAlex Blom
 
BP209 doctors have scalpels, carpenters have hammers, ibm sametime develope...
BP209   doctors have scalpels, carpenters have hammers, ibm sametime develope...BP209   doctors have scalpels, carpenters have hammers, ibm sametime develope...
BP209 doctors have scalpels, carpenters have hammers, ibm sametime develope...Carl Tyler
 
Configuring Apache Servers for Better Web Perormance
Configuring Apache Servers for Better Web PerormanceConfiguring Apache Servers for Better Web Perormance
Configuring Apache Servers for Better Web PerormanceSpark::red
 
Website Performance
Website PerformanceWebsite Performance
Website PerformanceHugo Fonseca
 

Ähnlich wie Step by Step Mobile Optimization (20)

Performance Implications of Mobile Design (Perf Audience Edition)
Performance Implications of Mobile Design (Perf Audience Edition)Performance Implications of Mobile Design (Perf Audience Edition)
Performance Implications of Mobile Design (Perf Audience Edition)
 
Velocity spa faster_092116
Velocity spa faster_092116Velocity spa faster_092116
Velocity spa faster_092116
 
Making Single Page Applications (SPA) faster
Making Single Page Applications (SPA) faster Making Single Page Applications (SPA) faster
Making Single Page Applications (SPA) faster
 
Boston Web Performance Meetup: The Render Chain and You
Boston Web Performance Meetup: The Render Chain and YouBoston Web Performance Meetup: The Render Chain and You
Boston Web Performance Meetup: The Render Chain and You
 
Implementing Aqua Ion - Chris Schultz, Digi-Key
Implementing Aqua Ion - Chris Schultz, Digi-KeyImplementing Aqua Ion - Chris Schultz, Digi-Key
Implementing Aqua Ion - Chris Schultz, Digi-Key
 
Front End Optimization [Cloud Connect 2012]
Front End Optimization [Cloud Connect 2012]Front End Optimization [Cloud Connect 2012]
Front End Optimization [Cloud Connect 2012]
 
Clone your Network with OpenNebula
Clone your Network with OpenNebulaClone your Network with OpenNebula
Clone your Network with OpenNebula
 
OpenNebulaConf 2013 - Keynote: Clone your Network with OpenNebula by Thomas H...
OpenNebulaConf 2013 - Keynote: Clone your Network with OpenNebula by Thomas H...OpenNebulaConf 2013 - Keynote: Clone your Network with OpenNebula by Thomas H...
OpenNebulaConf 2013 - Keynote: Clone your Network with OpenNebula by Thomas H...
 
Chicago Tech Day Jan 2015: RWD
Chicago Tech Day Jan 2015: RWDChicago Tech Day Jan 2015: RWD
Chicago Tech Day Jan 2015: RWD
 
Akamai 如何幫您的客戶用網站賺錢 how to monetize your site
Akamai 如何幫您的客戶用網站賺錢 how to monetize your siteAkamai 如何幫您的客戶用網站賺錢 how to monetize your site
Akamai 如何幫您的客戶用網站賺錢 how to monetize your site
 
Responsive Web Demo with Akamai
Responsive Web Demo with AkamaiResponsive Web Demo with Akamai
Responsive Web Demo with Akamai
 
Akamai company profile
Akamai company profileAkamai company profile
Akamai company profile
 
O'Reilly webcast: Joshua Bixby on Mobile Performance Trends and Predictions
O'Reilly webcast: Joshua Bixby on Mobile Performance Trends and PredictionsO'Reilly webcast: Joshua Bixby on Mobile Performance Trends and Predictions
O'Reilly webcast: Joshua Bixby on Mobile Performance Trends and Predictions
 
The Dark Side of Single Page Applications
The Dark Side of Single Page ApplicationsThe Dark Side of Single Page Applications
The Dark Side of Single Page Applications
 
PhoneGap Day EU 2017: Hybrid Ember Apps
PhoneGap Day EU 2017: Hybrid Ember AppsPhoneGap Day EU 2017: Hybrid Ember Apps
PhoneGap Day EU 2017: Hybrid Ember Apps
 
BP209 doctors have scalpels, carpenters have hammers, ibm sametime develope...
BP209   doctors have scalpels, carpenters have hammers, ibm sametime develope...BP209   doctors have scalpels, carpenters have hammers, ibm sametime develope...
BP209 doctors have scalpels, carpenters have hammers, ibm sametime develope...
 
Configuring Apache Servers for Better Web Perormance
Configuring Apache Servers for Better Web PerormanceConfiguring Apache Servers for Better Web Perormance
Configuring Apache Servers for Better Web Perormance
 
Assessing Your Own Site Configuration
Assessing Your Own Site ConfigurationAssessing Your Own Site Configuration
Assessing Your Own Site Configuration
 
Website Performance
Website PerformanceWebsite Performance
Website Performance
 
Web Performance Optimization (WPO)
Web Performance Optimization (WPO)Web Performance Optimization (WPO)
Web Performance Optimization (WPO)
 

Mehr von Guy Podjarny

Serverless Security: What's Left To Protect
Serverless Security: What's Left To ProtectServerless Security: What's Left To Protect
Serverless Security: What's Left To ProtectGuy Podjarny
 
Securing Serverless - By Breaking In
Securing Serverless - By Breaking InSecuring Serverless - By Breaking In
Securing Serverless - By Breaking InGuy Podjarny
 
Serverless Security: What's Left to Protect?
Serverless Security: What's Left to Protect?Serverless Security: What's Left to Protect?
Serverless Security: What's Left to Protect?Guy Podjarny
 
Secure Node Code (workshop, O'Reilly Security)
Secure Node Code (workshop, O'Reilly Security)Secure Node Code (workshop, O'Reilly Security)
Secure Node Code (workshop, O'Reilly Security)Guy Podjarny
 
Stranger Danger (NodeSummit, 2016)
Stranger Danger (NodeSummit, 2016)Stranger Danger (NodeSummit, 2016)
Stranger Danger (NodeSummit, 2016)Guy Podjarny
 
Stranger Danger: Securing Third Party Components (Tech2020)
Stranger Danger: Securing Third Party Components (Tech2020)Stranger Danger: Securing Third Party Components (Tech2020)
Stranger Danger: Securing Third Party Components (Tech2020)Guy Podjarny
 
High Performance Images: Beautiful Shouldn't Mean Slow (Velocity EU 2015)
High Performance Images: Beautiful Shouldn't Mean Slow (Velocity EU 2015)High Performance Images: Beautiful Shouldn't Mean Slow (Velocity EU 2015)
High Performance Images: Beautiful Shouldn't Mean Slow (Velocity EU 2015)Guy Podjarny
 
HTTPS: What, Why and How (SmashingConf Freiburg, Sep 2015)
HTTPS: What, Why and How (SmashingConf Freiburg, Sep 2015)HTTPS: What, Why and How (SmashingConf Freiburg, Sep 2015)
HTTPS: What, Why and How (SmashingConf Freiburg, Sep 2015)Guy Podjarny
 
High Performance Images: Beautiful Shouldn't Mean Slow
High Performance Images: Beautiful Shouldn't Mean SlowHigh Performance Images: Beautiful Shouldn't Mean Slow
High Performance Images: Beautiful Shouldn't Mean SlowGuy Podjarny
 
Responsive In The Wild, 2014
Responsive In The Wild, 2014Responsive In The Wild, 2014
Responsive In The Wild, 2014Guy Podjarny
 
Third Party Performance (Velocity, 2014)
Third Party Performance (Velocity, 2014)Third Party Performance (Velocity, 2014)
Third Party Performance (Velocity, 2014)Guy Podjarny
 
Rules driven-delivery
Rules driven-deliveryRules driven-delivery
Rules driven-deliveryGuy Podjarny
 
Responsive In The Wild (SmashingConf, 2014)
Responsive In The Wild (SmashingConf, 2014)Responsive In The Wild (SmashingConf, 2014)
Responsive In The Wild (SmashingConf, 2014)Guy Podjarny
 
Putting Your Images on a Diet (SmashingConf, 2014)
Putting Your Images on a Diet (SmashingConf, 2014)Putting Your Images on a Diet (SmashingConf, 2014)
Putting Your Images on a Diet (SmashingConf, 2014)Guy Podjarny
 
Third party-performance (Airbnb Nerds, Nov 2013)
Third party-performance (Airbnb Nerds, Nov 2013)Third party-performance (Airbnb Nerds, Nov 2013)
Third party-performance (Airbnb Nerds, Nov 2013)Guy Podjarny
 
Third Party Performance
Third Party PerformanceThird Party Performance
Third Party PerformanceGuy Podjarny
 
A Picture Costs A Thousand Words
A Picture Costs A Thousand WordsA Picture Costs A Thousand Words
A Picture Costs A Thousand WordsGuy Podjarny
 
Unravelling Mobile Web Performance
Unravelling Mobile Web PerformanceUnravelling Mobile Web Performance
Unravelling Mobile Web PerformanceGuy Podjarny
 
State Of Mobile Web Performance
State Of Mobile Web PerformanceState Of Mobile Web Performance
State Of Mobile Web PerformanceGuy Podjarny
 

Mehr von Guy Podjarny (19)

Serverless Security: What's Left To Protect
Serverless Security: What's Left To ProtectServerless Security: What's Left To Protect
Serverless Security: What's Left To Protect
 
Securing Serverless - By Breaking In
Securing Serverless - By Breaking InSecuring Serverless - By Breaking In
Securing Serverless - By Breaking In
 
Serverless Security: What's Left to Protect?
Serverless Security: What's Left to Protect?Serverless Security: What's Left to Protect?
Serverless Security: What's Left to Protect?
 
Secure Node Code (workshop, O'Reilly Security)
Secure Node Code (workshop, O'Reilly Security)Secure Node Code (workshop, O'Reilly Security)
Secure Node Code (workshop, O'Reilly Security)
 
Stranger Danger (NodeSummit, 2016)
Stranger Danger (NodeSummit, 2016)Stranger Danger (NodeSummit, 2016)
Stranger Danger (NodeSummit, 2016)
 
Stranger Danger: Securing Third Party Components (Tech2020)
Stranger Danger: Securing Third Party Components (Tech2020)Stranger Danger: Securing Third Party Components (Tech2020)
Stranger Danger: Securing Third Party Components (Tech2020)
 
High Performance Images: Beautiful Shouldn't Mean Slow (Velocity EU 2015)
High Performance Images: Beautiful Shouldn't Mean Slow (Velocity EU 2015)High Performance Images: Beautiful Shouldn't Mean Slow (Velocity EU 2015)
High Performance Images: Beautiful Shouldn't Mean Slow (Velocity EU 2015)
 
HTTPS: What, Why and How (SmashingConf Freiburg, Sep 2015)
HTTPS: What, Why and How (SmashingConf Freiburg, Sep 2015)HTTPS: What, Why and How (SmashingConf Freiburg, Sep 2015)
HTTPS: What, Why and How (SmashingConf Freiburg, Sep 2015)
 
High Performance Images: Beautiful Shouldn't Mean Slow
High Performance Images: Beautiful Shouldn't Mean SlowHigh Performance Images: Beautiful Shouldn't Mean Slow
High Performance Images: Beautiful Shouldn't Mean Slow
 
Responsive In The Wild, 2014
Responsive In The Wild, 2014Responsive In The Wild, 2014
Responsive In The Wild, 2014
 
Third Party Performance (Velocity, 2014)
Third Party Performance (Velocity, 2014)Third Party Performance (Velocity, 2014)
Third Party Performance (Velocity, 2014)
 
Rules driven-delivery
Rules driven-deliveryRules driven-delivery
Rules driven-delivery
 
Responsive In The Wild (SmashingConf, 2014)
Responsive In The Wild (SmashingConf, 2014)Responsive In The Wild (SmashingConf, 2014)
Responsive In The Wild (SmashingConf, 2014)
 
Putting Your Images on a Diet (SmashingConf, 2014)
Putting Your Images on a Diet (SmashingConf, 2014)Putting Your Images on a Diet (SmashingConf, 2014)
Putting Your Images on a Diet (SmashingConf, 2014)
 
Third party-performance (Airbnb Nerds, Nov 2013)
Third party-performance (Airbnb Nerds, Nov 2013)Third party-performance (Airbnb Nerds, Nov 2013)
Third party-performance (Airbnb Nerds, Nov 2013)
 
Third Party Performance
Third Party PerformanceThird Party Performance
Third Party Performance
 
A Picture Costs A Thousand Words
A Picture Costs A Thousand WordsA Picture Costs A Thousand Words
A Picture Costs A Thousand Words
 
Unravelling Mobile Web Performance
Unravelling Mobile Web PerformanceUnravelling Mobile Web Performance
Unravelling Mobile Web Performance
 
State Of Mobile Web Performance
State Of Mobile Web PerformanceState Of Mobile Web Performance
State Of Mobile Web Performance
 

Kürzlich hochgeladen

Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostZilliz
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningLars Bell
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clashcharlottematthew16
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionDilum Bandara
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piececharlottematthew16
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo DayH2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo DaySri Ambati
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 

Kürzlich hochgeladen (20)

Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine Tuning
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clash
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An Introduction
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piece
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo DayH2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 

Step by Step Mobile Optimization

  • 1. Step By Step Mobile Optimization Guy Podjarny @guypod http://www.guypo.com/ Akamai Confidential
  • 2. Agenda • Review Primary Tools • Introduce Demo Mobile Site • Optimize Site in 5 steps • Describe a problem • Show its impact • Discuss the cause • Try out one or more solutions • Summary • Q&A Faster ForwardTM ©2012 Akamai
  • 3. Disclaimers • Performance Numbers are never perfect • Numbers vary widely for any given website • In this deck, the numbers are helpers, not absolutes • This presentation focuses on Mobile • Focus is on problems more common in Mobile websites • I’m intentionally not tackling common Front-End Optimization • This presentation focuses on dedicated Mobile websites • I won’t be discussing Responsive Web Design (RWD) here • If you want to learn about RWD performance, come back tomorrow Faster ForwardTM ©2012 Akamai
  • 4. Faster ForwardTM The Tools ©2012 Akamai
  • 5. Waterfall Chart Doc Complete, Waterfall Resource (a.k.a. onload, Chart (Request/Response) Start Render Load Time) Faster ForwardTM ©2012 Akamai
  • 6. WebPageTest • Free Perf Measurement Tool • www.webpagetest.org • Open Source • Can be privately installed • Desktop Browsers • IE 6-9, Chrome, Firefox • Uses Traffic Shaping • Over faster networks Faster ForwardTM ©2012 Akamai
  • 7. “Mobile”-izing WebPageTest with Scripts • Use Chrome or Firefox as agent • Chrome more similar to real mobile browsers • Resize window to smartphone size • setviewportsize 320 480 • No way to fake a Retina display • Fake a smartphone user-agent • setUserAgent <Some-Smartphone-UA> • Doesn’t update navigator.userAgent • Navigate to the relevant site… • navigate http://www.your-site.com/ Faster ForwardTM ©2012 Akamai
  • 8. Akamai Mobitest • Free Mobile Web Perf Measurement Tool • http://mobitest.akamai.com/ • Open-Source • http://bit.ly/open-source-mobitest • Mobile Browsers • iOS, Android • No Traffic Shaping • Builds on WebPageTest • Can share a single server Faster ForwardTM ©2012 Akamai
  • 9. iOS 6 Network Link Conditioner – On Device! How to Enable: http://www.neglecte dpotential.com/201 2/09/ios6-network- link-conditioner/ Faster ForwardTM ©2012 Akamai
  • 10. Introduction: SLowe’s Commerce • Demo eCommerce application • with dedicated Mobile site • Built on Magento • Took the Magento Demo Site • Made some slight modifications Faster ForwardTM ©2012 Akamai
  • 11. Initial Waterfall Chart • URL: www.slowes.org • Device: iPhone 4 • OS: iOS 6 • Speed: 3G • Apple’s Definition • Throttled with Network Link Conditioner Faster ForwardTM ©2012 Akamai
  • 12. Initial Filmstrip • 16 seconds to start render • 18 seconds to “Visually Complete” Faster ForwardTM ©2012 Akamai
  • 13. • Slide about redirects, maybe an eschel drawing? Step 1: Redirects Faster ForwardTM ©2012 Akamai
  • 14. JavaScript Redirect - The Good mobileDetect.js: • Client-side browser detection • Easy to deploy • Compared to server changes • “Future Friendly” • Can test screen width alongside UAs Faster ForwardTM ©2012 Akamai
  • 15. Client-Side Detection Often Recommended Nokia: Mobify: Faster ForwardTM ©2012 Akamai
  • 16. JavaScript Redirect – The Bad • Slow! • Redirect only happens after JS is downloaded and executed • Unnecessary download of other resources • Some above the JS in the HTML • Some downloaded early by speculative parser Faster ForwardTM ©2012 Akamai
  • 17. JS Redirect => HTTP Redirect mobileDetect.js Apache CDN Fallback: Inline Script on Desktop page CMS/App Server Faster ForwardTM ©2012 Akamai
  • 18. Optimization Results - Waterfall • Real page starts loading after ~1.5 secs vs 5.5 secs • ~4 Seconds saved • No downloading of excess CSS and JS • All Good: Less requests, less bytes, less delay Faster ForwardTM ©2012 Akamai
  • 19. Optimization Results - Visual • ~5 seconds acceleration to start render Faster ForwardTM ©2012 Akamai
  • 20. Merging Redirect Chains Only one redirect • Combine all redirects to one redirect • Requires combining Application and Mobile logic Mobile Logic ^/(?:magento/)?(.*) /magento/ Application Logic Faster ForwardTM ©2012 Akamai
  • 21. Avoiding Redirects: Serving Client-Specific HTML • Instead of redirecting, return client-aware HTML • Same URL returns HTML by client • Caution: Caching appliances & CDNs must be tuned • Requires consistent paths across all variations No Redirect Faster ForwardTM ©2012 Akamai
  • 22. Step 1: Conclusions • Redirects have a real cost • Especially in high latency mobile networks • HTTP Redirects are much faster than JS Redirects • Use HTTP Redirects • Use JS Redirects as backup only • 1 Redirect is faster than… more than 1 redirect • Merge redirect chains whenever possible • No redirects are faster than even 1 redirect! • Consider serving different HTML to different clients on one site Faster ForwardTM ©2012 Akamai
  • 23. Step 2: Faster ForwardTM Compression ©2012 Akamai
  • 24. Lack of HTTP Compression (Gzip) 160 KB (!!!) No Gzip Faster ForwardTM ©2012 Akamai
  • 25. Solution: Apply Compression • Gzip compression built into most elements in the stack • App Server, Web Server, Load Balancer, CDN… Faster ForwardTM ©2012 Akamai
  • 26. Compression matters more on Mobile! • Mobile websites have less images • JS & CSS account for more of the bytes • Therefore, more of the bytes is compressible • Therefore, compression matters more on Mobile. • (Practically) all mobile browsers support compression • Kinda true on desktop these days • Download bandwidth on mobile is smaller than broadband • Latency on mobile is higher on broadband Faster ForwardTM ©2012 Akamai
  • 27. TCP Slow Start (diagrams from John Rauser) Early TCP Slow Start Delayed ACK Max Packet Size: 1460 bytes http://velocityconf.com/velocity2010/public/schedule/detail/11792 Faster Forward TM ©2012 Akamai
  • 28. TCP Slow Start (diagrams from John Rauser) • Time to deliver ~72KB: • Fiber (4ms RTT): ~24ms • DSL (50ms RTT): ~300ms • 3G (200ms RTT): 1.2 seconds (!!!) • Time to deliver ~300KB: • Fiber (4ms RTT): ~40ms • DSL (50ms RTT): ~500ms • 3G (200ms RTT): 2 seconds (!!!) • Slow-Start is per connection http://velocityconf.com/velocity2010/public/schedule/detail/11792 Faster Forward TM ©2012 Akamai
  • 29. Step 2: Conclusions • Compression is a critical optimization • Easy to implement, especially in Mobile • All mobile browsers (that you care about) support it • Especially important on Mobile • Compressible content (JS,CSS…) accounts for a bigger part of the page • High latency makes large download slow • High packet loss makes large downloads unbearable Faster ForwardTM ©2012 Akamai
  • 30. Step 3: Consolidation Faster ForwardTM ©2012 Akamai
  • 31. Step 3: Fragmented JS/CSS Files 2 CSS Files 16 JS Files Faster ForwardTM ©2012 Akamai
  • 32. Step 3: Consolidate CSS & JS Files Faster ForwardTM ©2012 Akamai
  • 33. Step 3: Consolidate JS/CSS Files - Visual Fragmented Consolidated Consolidation made it worse! Faster ForwardTM ©2012 Akamai
  • 34. Consolidated vs. Fragmented - Test • 1 consolidated script • ~1 MB in size • 10 scripts, with IDs from 1 - 10 • Each script weights ~100 KB • Each script ends with: • document.write('Processed file ID @, time is ' + new Date()); Faster ForwardTM ©2012 Akamai
  • 35. Consolidated vs. Fragmented - Result Consolidated Fragmented Fragmented Consolidated Starts painting ~5 seconds earlier! Faster ForwardTM ©2012 Akamai
  • 36. Consolidation & Progressive Processing • Browsers only process JavaScript & CSS when fully loaded • Unlike HTML, which is processed (roughly) as soon as it arrives • Consolidation delays the first script execution, CSS evaluation • Especially with many scripts of varying sizes • Possibly not always true for CSS • This means Consolidation often delays dynamic requests • Generated by scripts, thus not seen until execution • Often results in a slower page • Making consolidating “streaming” is doable, but hard • http://www.guypo.com/uncategorized/consolidation-not-simple-addition/ Faster ForwardTM ©2012 Akamai
  • 37. Step 3a: Async Scripts • Defer external script execution to onload • Often useful to defer download as well! • Replace dependent inline scripts with event handlers • Invoked in “onload” of appropriate external script • No need to touch inline scripts with no dependencies • Complications: • Scripts required for basic page functionality • Scripts that use document.write() • 3rd party scripts (you don’t know what they use…) • Complications not as common in simpler mobile websites Faster ForwardTM ©2012 Akamai
  • 38. Step 3a: Simulation – remove combined.js No Visual Difference! Faster ForwardTM ©2012 Akamai
  • 39. Step 3: Conclusions • Consolidation is good and bad • Good: Reduces roundtrips • Bad: Hurts caching, progressive processing • Consolidate with Care • Merge small files together, especially if functionally related • If you can, use Adaptive and Streaming Consolidation • http://www.guypo.com/uncategorized/consolidation-not-simple-addition/ • Procrastinate - Defer as much as you can • Often easier to do on Mobile websites • Measure!!! Faster ForwardTM ©2012 Akamai
  • 40. Step 4: Faster ForwardTM Retina Images ©2012 Akamai
  • 41. Retina Images bg_header_retina.png – 56 KB 1 2 3 4 bg_header.png – 14KB Faster ForwardTM ©2012 Akamai
  • 42. Lossless Image Compression • “Image Minification” Retina: • Sheds bytes without reducing quality • Sample techniques: • Remove Geo data • Remove Histogram data Regular: • Remove unused colors • Replace GIF with PNG-8 • … Faster ForwardTM ©2012 Akamai
  • 43. Lossy Image Compression • Reduce quality without hurting User Experience • For Desktop, reduce to high-end screen resolution • For Mobile, reduce to display size & resolution • Known as “Responsive Images” Image Origina Lossless “Desktop” Reduce to Reduce to l Compression Resolution 320px wide 128px wide Retina 56KB 48.2KB (14%) 26.6KB (53%) 6.8 KB (88%) 2.2KB (96%) Regula 14KB 11.5KB (18%) 7KB (50%) 7KB (50%) 2.2KB (85%) r Faster ForwardTM ©2012 Akamai
  • 44. Responsive Images 128px, 240px, 6.8 KB 2.9 KB 320px, 10.6 KB 480px, 21.3 KB Site: lonelyplanet.com Device: iPhone 4 Before: 867 KB After: 570 KB Full Res, 50.1 KB Faster ForwardTM ©2012 Akamai
  • 45. Standardizing Responsive Images @srcset <picture> https://github.com/scottjehl/picturefill Faster Forward TM ©2012 Akamai
  • 46. Responsive Images - Summary • Smaller screens don’t benefit from high quality images • Solution: Respond to screen size by reducing image quality • Screen size detection usually done on client side • But same technique can be used on server-side • Examples: Sencha.io Src (Free), Akamai EIM (Commercial) • Don’t forget CSS background images! • Implementation is easier – with a few catches we’ll discuss later… • Optional: Lazy-load higher quality images • May defer them to onload • May load them on demand Faster ForwardTM ©2012 Akamai
  • 47. Step 4a: Banner Image Compression impact No Image Optimization: Lossy Compression: No Retina Image: Faster ForwardTM ©2012 Akamai
  • 48. Step 4: Conclusions • Mobile screen size & resolution are an opportunity & a threat • Opportunity: Reduce bytes on smaller screens • Threat: Using Retina images broadly • Lossless Image Compression should be a given • No trade-offs, just do it. • Lossy Comp/Responsive Images avoid excessive quality • Avoid images too big for a user to appreciate (on this device) • Optionally load low quality images first, high quality images at onload • Measure!!! • Show your designers the UX impact of every image quality change Faster ForwardTM ©2012 Akamai
  • 49. iPhone Optimization: Summary Faster ForwardTM ©2012 Akamai
  • 50. Interim Summary - Actions • Step 1: Improved Redirects • Replaced JS Redirect with HTTP Redirect • Merged redirect chains • Step 2: Applied HTTP Compression • Step 3: Consolidated JavaScript and CSS files • Async’d JavaScript files too • Step 4: Compressed Images • Lossless Compression • Lossy Compression • No Retina Images Faster ForwardTM ©2012 Akamai
  • 51. Interim Summary - Acceleration Browsing www.slowes.org (including app redirect) Faster ForwardTM ©2012 Akamai
  • 52. Step 5: Android Faster ForwardTM ©2012 Akamai
  • 53. Testing on Android • No network Throttling on-device • iOS had the same problem until a few weeks ago (with iOS 6) • Alternative: Tether to laptop, throttle there • Instructions on how to tether: http://pcapperf.appspot.com/ • Unfortunately, newer Androids can’t connect through laptop • Realistic alternative: Test w/out throttling • No 3G load times, but can find interesting data in Waterfall chart • Use Real User Measurement to monitor real world numbers • Use Mobitest for Android Browser, Remote Debugging for Chrome Faster ForwardTM ©2012 Akamai
  • 54. Step 5: Android Test 22 files Strange gap (vs. 14 (~200 ms) on iPhone) # Connections Limit Both Retina & regular reqs Faster ForwardTM ©2012 Akamai
  • 55. Duplicate Requests on Android – Tim Kadlec’s Test http://timkadlec.com/2012/04/media-query-asset-downloading-results/ Faster Forward TM ©2012 Akamai
  • 56. Duplicate Requests on Android – Slowe’s … … Faster ForwardTM ©2012 Akamai
  • 57. Duplicate Requests - Solution • One solution works (almost) everywhere… • As long as you support media queries… Faster ForwardTM ©2012 Akamai
  • 58. Step 5a: Eliminate Duplicate Requests - Results Faster ForwardTM ©2012 Akamai
  • 59. Android Mind the Gap… • Theories Strange gap • It’s the weak mobile device… (~200 ms) • But it doesn’t happen on iPhone! Chrome • It’s the old Android browser… • Harder to test Chrome for Android • Let’s test with desktop Chrome • Ok, let’s test on Chrome for Android… • Using Remote Debugging Chrome for Android • https://developers.google.com/chrome /mobile/docs/debugging • On Nexus 7 Tablet, No gap! Faster ForwardTM ©2012 Akamai
  • 60. Problem: Translate3D combined.css “The translate3d() CSS function moves the position of the element in the 3D space. This transformation is characterized by a 3-dimension vector whose coordinates define how much it moves in each direction” Faster ForwardTM ©2012 Akamai
  • 61. Step 5b: Remove translate3d calls Chrome Android Gap a tiny bit smaller (~170 ms) • Results on iPhone, Nexus Tablet remain unchanged • Issue seems to occur only when Hardware Acceleration is not supported Faster ForwardTM ©2012 Akamai
  • 62. Step 5: Conclusions • Not all (mobile) browsers/devices are the same • Even if they’re WebKit based • Don’t optimize things you’re not doing • Especially if you’re using hacks to do the optimization • Say it with me: MEASURE!!! • In Mobile, you have to test on multiple devices • Android devices vary by OS Version, OEM, device… • Use analytics to find your top clients, Faster ForwardTM ©2012 Akamai
  • 63. Use Analytics to determine YOUR top devices Google Analytics Faster ForwardTM ©2012 Akamai
  • 64. Summary • Summary Faster ForwardTM ©2012 Akamai
  • 65. What have we done? • We optimized one home page in 5 steps: • Step 1: Redirect Optimization • Step 2: HTTP Optimization • Step 3: JS/CSS Optimization • Step 4: Image Optimization • Step 5: Cross-Device Optimization • We MEASURED during each step • Assuming less-than-stellar network conditions • We made the page ~5x faster Faster ForwardTM ©2012 Akamai
  • 66. Manual FEO Original Optimized Original Original Original Original Original Original Original Faster ForwardTM ©2012 Akamai
  • 67. Automated FEO Pixie Dust Slow, Web Generic HTML Server • Automates much of the optimization process • Can’t fix everything, but can save a lot of effort • Doesn’t replace performance awareness * Visual from • For example, measuring… Patrick Meenan Faster ForwardTM ©2012 Akamai
  • 68. Final Words • A mobile page with few images != A fast page • Mobile Site Common Pitfalls: • Slow and repeated redirects • Excess JavaScript & CSS • Mobile Site Opportunities: • Reduce image size: Smaller Screen • Defer JS: Simpler content can be visually complete without it • Measuring Is Critical • Test on different devices and browsers • Should be built into QA & Build System regression tests Faster ForwardTM ©2012 Akamai
  • 69. Thank You! Questions? Step By Step Mobile Optimization Guy Podjarny @guypod http://www.guypo.com/ Akamai Confidential

Hinweis der Redaktion

  1. http://www.webpagetest.org/result/120921_8cd1f274aa7b958fee1b5a661dd51c53/
  2. http://www.webpagetest.org/result/120921_8cd1f274aa7b958fee1b5a661dd51c53/
  3. http://www.webpagetest.org/result/120923_931cc33e267a396623e8b2a73a7e6899/
  4. http://www.webpagetest.org/result/120923_931cc33e267a396623e8b2a73a7e6899/
  5. http://www.webpagetest.org/result/120923_931cc33e267a396623e8b2a73a7e6899/
  6. Mobile: http://www.webpagetest.org/result/120923_07169161eb2055f79de620d6ea0e35cf/Desktop: http://www.webpagetest.org/result/120924_4N_951c2812948674c8d86d55988c2f318b/
  7. http://www.webpagetest.org/result/120924_4774b4d2c8c04c1bf8da2d1107ab82fb/
  8. http://www.webpagetest.org/result/120924_9fc90ade1aaf50641326f591c0a4225b/
  9. http://www.webpagetest.org/result/120924_9fc90ade1aaf50641326f591c0a4225b/
  10. http://www.webpagetest.org/result/120924_a65cb6638bec7386f6f67214e3b553c5/
  11. http://www.webpagetest.org/result/120924_6ad62427f7bb87acc5ce7ef7de922b55/
  12. http://www.webpagetest.org/result/120924_714a05fe5454c1999f435370ff0db47c/
  13. Before: http://www.webpagetest.org/result/120921_8cd1f274aa7b958fee1b5a661dd51c53/After: http://www.webpagetest.org/result/120924_99ff4b412d5b162ee6c27a4649f8821e/Compare:
  14. http://www.webpagetest.org/video/compare.php?tests=120925_41b25ecaa0a1e540b1faf96f2592edce-r%3A4-c%3A0&amp;thumbSize=200&amp;ival=1000&amp;end=doc
  15. http://timkadlec.com/2012/04/media-query-asset-downloading-results/http://www.stevesouders.com/blog/2010/02/12/5e-speculative-background-images/
  16. http://timkadlec.com/2012/04/media-query-asset-downloading-results/
  17. http://www.webpagetest.org/result/120925_56dd6ec22be26f2dc82780b14a905941/
  18. Chrome: http://www.webpagetest.org/result/120926_9E_f45fd32b410326f282117d78f706afb4/