Fast & Furious:
  Speed in the Opera browser




http://www.flickr.com/photos/booleansplit/3942748344/
                                                       @andreasbovens
Wednesday, November 9, 11
Wednesday, November 9, 11
Wednesday, November 9, 11
Bruce Lawson
                                                                                       Daniel Davis




                                                                  Divya Manian
                                            Chris Mills
                                                                                                      Karl Dubost




                                                 Shwetank Dixit                   Tiffany Brown
                                                                                                              me

                                                                  Luz Caballero


                            Patrick Lauke
                @odevrel                           Zi Bin Cheah               Vadim Makeev            Mike Taylor
Wednesday, November 9, 11
Wednesday, November 9, 11
Wednesday, November 9, 11
Recent Presto enhancements
                                        (typically land first on desktop)




Wednesday, November 9, 11
Presto prefetches images included via background-image,
               -o-border-image, list-style-image, content properties while
               waiting for more stylesheets to load.
               Note: we do a super-quick run-through (a sort of selective
               cascade) to make sure the images will effectively be used.


                                                                   (already in Opera 11.50)
Wednesday, November 9, 11
SSL + network improvements:




                                             (expect this to land in Opera 11.60, 12)
Wednesday, November 9, 11
SSL + network improvements:
               - SSL False Start: reduces SSL handshake latency.




                                                           (expect this to land in Opera 11.60, 12)
Wednesday, November 9, 11
SSL + network improvements:
               - SSL False Start: reduces SSL handshake latency.
               - Strict Transport Security (STS): reminds browser that
                 the given domain should only be contacted over https.




                                                           (expect this to land in Opera 11.60, 12)
Wednesday, November 9, 11
SSL + network improvements:
               - SSL False Start: reduces SSL handshake latency.
               - Strict Transport Security (STS): reminds browser that
                 the given domain should only be contacted over https.
               - Various network speed optimizations.


                                                           (expect this to land in Opera 11.60, 12)
Wednesday, November 9, 11
Our Carakan JS engine internally uses automatic classes to
               keep track of object properties and their types. We've
               recently expanded these classes’ scope and power to also
               record the layout (or shape) of the objects along with their
               property types. This improved compact object model
               allows Carakan to reduce the overhead per object, and the
               richer type information also enables the generation of
               better JITed code.

                                                                    (should be in Opera 11.60)
Wednesday, November 9, 11
Refactored SVG traverser and improved SVG painting
               structure, including smarts to optimize for specific TV use
               cases.




                                                           (should be in Opera 11.60, TV deliveries)
Wednesday, November 9, 11
Hardware acceleration!
               - support for OpenGL, DirectX backends.
               - powers WebGL, 2D canvas, but also all other painting,
                 and even browser UI drawing.



                                                                  (planned for Opera 12)
Wednesday, November 9, 11
Wednesday, November 9, 11
Opera Turbo




http://www.flickr.com/photos/damianmorysfotos/4804494571/in/photostream/
Wednesday, November 9, 11
Opera Turbo

               Opera Turbo servers act as compression proxy between
               the user and the website:
               - non-gzipped content is gzipped
               - images are converted to WebP

Wednesday, November 9, 11
Wednesday, November 9, 11
Wednesday, November 9, 11
Wednesday, November 9, 11
Wednesday, November 9, 11
Opera Turbo

               Remember!
               Look at the X-Forwarded-For header to determine the
               visitor’s IP address.

Wednesday, November 9, 11
Wednesday, November 9, 11
Opera Mobile




             http://www.flickr.com/photos/davidht/2124791520/




Wednesday, November 9, 11
Fast panning, without checkerboard:




Wednesday, November 9, 11
Fast panning, without checkerboard:




Wednesday, November 9, 11
Fast panning, without checkerboard:
                            - new, dynamic way of drawing content on
                              screen: only visible viewport is rendered.




Wednesday, November 9, 11
Fast panning, without checkerboard:
                            - new, dynamic way of drawing content on
                              screen: only visible viewport is rendered.
                            - zoomed image interpolation tweaks.



Wednesday, November 9, 11
- zoomed image interpolation tweaks.




Wednesday, November 9, 11
- zoomed image interpolation tweaks.




Wednesday, November 9, 11
- zoomed image interpolation tweaks.




                            Bilinear interpolation for zoomed images already in the viewport.




Wednesday, November 9, 11
- zoomed image interpolation tweaks.




                            Bilinear interpolation for zoomed images already in the viewport.




                            Nearest neighbor interpolation for zoomed images that are being moved into the viewport.
Wednesday, November 9, 11
- zoomed image interpolation tweaks.




                            Bilinear interpolation for zoomed images already in the viewport.




                            Nearest neighbor interpolation for zoomed images that are being moved into the viewport.
Wednesday, November 9, 11
Opera Mobile Emulator




                     www.opera.com/developer/tools/mobile/

Wednesday, November 9, 11
Opera Mini   http://www.flickr.com/photos/nrmadriversseat/5449080917/



Wednesday, November 9, 11
Wednesday, November 9, 11
Instead of HTTP and HTML, Mini uses a binary
                            format over a binary protocol, with radical
                            reduction of request and responses.

Wednesday, November 9, 11
Instead of HTTP and HTML, Mini uses a binary
                            format over a binary protocol, with radical
                            reduction of request and responses.

Wednesday, November 9, 11
Note: the DOM lives on the server, and hence,
                            dynamic interaction is limited.


Wednesday, November 9, 11
Also here, look at the X-Forwarded-For header
                            to determine the visitor’s IP address!


Wednesday, November 9, 11
The latest Opera Mini performance tweaks...




Wednesday, November 9, 11
With checkerboard




Wednesday, November 9, 11
With colored blocks




Wednesday, November 9, 11
The latest Opera Mini performance tweaks...
                            - colored blocks instead of checkerboard




Wednesday, November 9, 11
The latest Opera Mini performance tweaks...
                            - colored blocks instead of checkerboard
                            - GPU accelerated rendering




Wednesday, November 9, 11
The latest Opera Mini performance tweaks...
                            - colored blocks instead of checkerboard
                            - GPU accelerated rendering




Wednesday, November 9, 11
Opera Dragonfly




                                             http://www.flickr.com/photos/profilerehab/5218108077/
Wednesday, November 9, 11
Wednesday, November 9, 11
Soon: JS profiler!
                            my.opera.com/dragonfly/blog/




Wednesday, November 9, 11
Thanks for listening!
       @andreasbovens @odevrel
                                 http://www.flickr.com/photos/ejcallow/5608030160/
Wednesday, November 9, 11

Fast & Furious: Speed in the Opera browser

  • 1.
    Fast & Furious: Speed in the Opera browser http://www.flickr.com/photos/booleansplit/3942748344/ @andreasbovens Wednesday, November 9, 11
  • 2.
  • 3.
  • 4.
    Bruce Lawson Daniel Davis Divya Manian Chris Mills Karl Dubost Shwetank Dixit Tiffany Brown me Luz Caballero Patrick Lauke @odevrel Zi Bin Cheah Vadim Makeev Mike Taylor Wednesday, November 9, 11
  • 5.
  • 6.
  • 7.
    Recent Presto enhancements (typically land first on desktop) Wednesday, November 9, 11
  • 8.
    Presto prefetches imagesincluded via background-image, -o-border-image, list-style-image, content properties while waiting for more stylesheets to load. Note: we do a super-quick run-through (a sort of selective cascade) to make sure the images will effectively be used. (already in Opera 11.50) Wednesday, November 9, 11
  • 9.
    SSL + networkimprovements: (expect this to land in Opera 11.60, 12) Wednesday, November 9, 11
  • 10.
    SSL + networkimprovements: - SSL False Start: reduces SSL handshake latency. (expect this to land in Opera 11.60, 12) Wednesday, November 9, 11
  • 11.
    SSL + networkimprovements: - SSL False Start: reduces SSL handshake latency. - Strict Transport Security (STS): reminds browser that the given domain should only be contacted over https. (expect this to land in Opera 11.60, 12) Wednesday, November 9, 11
  • 12.
    SSL + networkimprovements: - SSL False Start: reduces SSL handshake latency. - Strict Transport Security (STS): reminds browser that the given domain should only be contacted over https. - Various network speed optimizations. (expect this to land in Opera 11.60, 12) Wednesday, November 9, 11
  • 13.
    Our Carakan JSengine internally uses automatic classes to keep track of object properties and their types. We've recently expanded these classes’ scope and power to also record the layout (or shape) of the objects along with their property types. This improved compact object model allows Carakan to reduce the overhead per object, and the richer type information also enables the generation of better JITed code. (should be in Opera 11.60) Wednesday, November 9, 11
  • 14.
    Refactored SVG traverserand improved SVG painting structure, including smarts to optimize for specific TV use cases. (should be in Opera 11.60, TV deliveries) Wednesday, November 9, 11
  • 15.
    Hardware acceleration! - support for OpenGL, DirectX backends. - powers WebGL, 2D canvas, but also all other painting, and even browser UI drawing. (planned for Opera 12) Wednesday, November 9, 11
  • 16.
  • 17.
  • 18.
    Opera Turbo Opera Turbo servers act as compression proxy between the user and the website: - non-gzipped content is gzipped - images are converted to WebP Wednesday, November 9, 11
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
    Opera Turbo Remember! Look at the X-Forwarded-For header to determine the visitor’s IP address. Wednesday, November 9, 11
  • 24.
  • 25.
    Opera Mobile http://www.flickr.com/photos/davidht/2124791520/ Wednesday, November 9, 11
  • 26.
    Fast panning, withoutcheckerboard: Wednesday, November 9, 11
  • 27.
    Fast panning, withoutcheckerboard: Wednesday, November 9, 11
  • 28.
    Fast panning, withoutcheckerboard: - new, dynamic way of drawing content on screen: only visible viewport is rendered. Wednesday, November 9, 11
  • 29.
    Fast panning, withoutcheckerboard: - new, dynamic way of drawing content on screen: only visible viewport is rendered. - zoomed image interpolation tweaks. Wednesday, November 9, 11
  • 30.
    - zoomed imageinterpolation tweaks. Wednesday, November 9, 11
  • 31.
    - zoomed imageinterpolation tweaks. Wednesday, November 9, 11
  • 32.
    - zoomed imageinterpolation tweaks. Bilinear interpolation for zoomed images already in the viewport. Wednesday, November 9, 11
  • 33.
    - zoomed imageinterpolation tweaks. Bilinear interpolation for zoomed images already in the viewport. Nearest neighbor interpolation for zoomed images that are being moved into the viewport. Wednesday, November 9, 11
  • 34.
    - zoomed imageinterpolation tweaks. Bilinear interpolation for zoomed images already in the viewport. Nearest neighbor interpolation for zoomed images that are being moved into the viewport. Wednesday, November 9, 11
  • 35.
    Opera Mobile Emulator www.opera.com/developer/tools/mobile/ Wednesday, November 9, 11
  • 36.
    Opera Mini http://www.flickr.com/photos/nrmadriversseat/5449080917/ Wednesday, November 9, 11
  • 37.
  • 38.
    Instead of HTTPand HTML, Mini uses a binary format over a binary protocol, with radical reduction of request and responses. Wednesday, November 9, 11
  • 39.
    Instead of HTTPand HTML, Mini uses a binary format over a binary protocol, with radical reduction of request and responses. Wednesday, November 9, 11
  • 40.
    Note: the DOMlives on the server, and hence, dynamic interaction is limited. Wednesday, November 9, 11
  • 41.
    Also here, lookat the X-Forwarded-For header to determine the visitor’s IP address! Wednesday, November 9, 11
  • 42.
    The latest OperaMini performance tweaks... Wednesday, November 9, 11
  • 43.
  • 44.
  • 45.
    The latest OperaMini performance tweaks... - colored blocks instead of checkerboard Wednesday, November 9, 11
  • 46.
    The latest OperaMini performance tweaks... - colored blocks instead of checkerboard - GPU accelerated rendering Wednesday, November 9, 11
  • 47.
    The latest OperaMini performance tweaks... - colored blocks instead of checkerboard - GPU accelerated rendering Wednesday, November 9, 11
  • 48.
    Opera Dragonfly http://www.flickr.com/photos/profilerehab/5218108077/ Wednesday, November 9, 11
  • 49.
  • 50.
    Soon: JS profiler! my.opera.com/dragonfly/blog/ Wednesday, November 9, 11
  • 51.
    Thanks for listening! @andreasbovens @odevrel http://www.flickr.com/photos/ejcallow/5608030160/ Wednesday, November 9, 11