48
Internet Explorer 9 Performance Overview Jason Weber Performance Lead Internet Explorer Team [email protected] http://www.ietestdrive.com http://blogs.msdn.com/ie

Internet Explorer 9 Presentation

Embed Size (px)

Citation preview

Page 1: Internet Explorer 9 Presentation

Internet Explorer 9Performance OverviewJason WeberPerformance LeadInternet Explorer Team

[email protected]://www.ietestdrive.comhttp://blogs.msdn.com/ie

Page 2: Internet Explorer 9 Presentation

IE9 Platform Objectives

1) Interoperable HTML5-Interpret the same HTML and CSS markup the same way-Run the same JavaScript with a consistent programming model

2) GPU-Powered HTML5 Graphics and Media-HTML5 demands a high-performance graphics subsystem-Display , SVG, Canvas, Images, Text, CSS3

3) Performance, Performance, Performance-Networking, JavaScript Execution, Layout Engine, FormattingBuilding the next web together!

Platform Previews and Community

Page 3: Internet Explorer 9 Presentation

Internet Explorer 8

Page 4: Internet Explorer 9 Presentation

Browser SubsystemsN

etw

orki

ng

HTM

L

CSS

Colle

ctio

ns

Java

Scri

pt

Mar

shal

ling

DO

M

Form

atti

ng

Bloc

k Bu

ildin

g

Layo

ut

Dis

play

Page 5: Internet Explorer 9 Presentation

Example Site: Wall Street Journal

Page 6: Internet Explorer 9 Presentation

Comparing Site Performance

Wall Street JournalChicago TribuneUSA TodayNew York TimesWashington PostCNN NewsSeattle TimesMSN NewsFinancial TimesBoston Globe

News Site #1News Site #2News Site #3News Site #4News Site #5

Page 7: Internet Explorer 9 Presentation

Five Popular News Sites

7

  TotalSize

NumberElemen

tsCSS

RulesImageFiles

Script Files

ScriptLines

ScriptLibs

News Site #1 3280kb 8662 1293 137 21 14,216

News Site #2 961kb 820 2964 44 16 3,812

News Site #3 300kb 1187 1366 26 4 9,481

News Site #4 1462kb 4257 893 76 21 11,988

News Site #5 2981kb 3578 1917 88 19 20,722

JQuery Prototype MooTools Scriptaculous Other (JS Lib)

YUI

Page 8: Internet Explorer 9 Presentation

IE8 Subsystem Breakout

News Site #1 News Site #2 News Site #3 News Site #4 News Site #50

500,000

1,000,000

1,500,000

2,000,000

2,500,000

3,000,000

3,500,000

4,000,000

HTML parsing CSS parser Collections JavaScript Marshalling Native OM Formatting BlockBuildLayout Rendering

Mill

isec

onds

Page 9: Internet Explorer 9 Presentation

Average Distribution Across News Sites

HTML parsingCSS parserCollectionsJavaScriptMarshallingNative OMFormattingBlockBuildLayoutRendering

Page 10: Internet Explorer 9 Presentation

Average Distribution Across AJAX Sites

HTML parsingCSS parserCollectionsJavaScriptMarshallingNative OMFormattingBlockBuildLayoutRendering

Page 11: Internet Explorer 9 Presentation

Internet Explorer 9

Page 12: Internet Explorer 9 Presentation

Internet Explorer 9Networking Improvements

Page 13: Internet Explorer 9 Presentation

Networking Performance

HTTP Caching Improvements- Improve heuristic expiration- Support: crazy-far-futures Expires headers- Support: Vary: Accept-Encoding- Support Vary: Host- Improved scavenger- Redirect caching- Back/forward optimization- Cross-domain HTTPS revalidation mitigation

 Parallel Connection Improvements- Increase connections-per-proxy to 12- Speculatively pre-open additional connection- Improved LCIE connection limiting

 DNS Improvements- Pre-fetch based on Link Rel=Prefetch- Pre-fetch based on likely matches in ULV flyout- Pre-fetch addresses based on previous use- Fast-path for IP literals

 General Improvements- Shorter User Agent String- Gracefully handle codepage restarts- Autoproxy in the frame- Img src=”” shouldn’t send a request- Issue requests on the wire earlier- Only download requires files (fonts)

Page 14: Internet Explorer 9 Presentation

PLT2: Bytes Downloaded

Chrome 5.x Firefox 3.6 Safari 5 Opera 10.5 IE 8 IE9 Preview 3 -

100

200

300

400

500

600

700

800

900

Page 15: Internet Explorer 9 Presentation

Internet Explorer 9New JavaScript Engine & Compiler

Page 16: Internet Explorer 9 Presentation

Interpreters, Compilers, Intermediary Languages, Machine Code, Stack Alignment, JIT, Type System, Registers, Memory Management, Assembly, Bytecode, Tracing, Syntax Trees, Dynamic Languages, Flow Analysis, Static Languages, Regular Expressions, Inlining, oh my…

Page 17: Internet Explorer 9 Presentation

SLIDE 17

Foreground

New JavaScript Interpreter

Source Code Parser AST Interprete

rByte Code

Page 18: Internet Explorer 9 Presentation

Multi-Core Processing

Multi-Core CPU

Page 19: Internet Explorer 9 Presentation

IE8 Processor Distribution

Foreground

Background

Page 20: Internet Explorer 9 Presentation

Windows Experience Index Results

20

Month CPU Count6/1/2010 2.42

Windows Experience Index

Number of CPU Cores for Vista and Win7 Users

Page 21: Internet Explorer 9 Presentation

Foreground

JavaScript Background Compiler

21

Source Code Parser AST InterpreterByteCode

Background Native Code

Background Compiler

Page 22: Internet Explorer 9 Presentation

IE9 Background Compilation

22

Foreground

Background

Page 23: Internet Explorer 9 Presentation

WebKit SunSpider Results

Page 24: Internet Explorer 9 Presentation

Web Application API Usage

1 19 37 55 73 91 1091271451631811992172352532712893073253433613793974154334514694875055235415595775956136316496676857037217390

1000

2000

3000

4000

5000

6000

7000

8000

API (By Rank)

Num

ber

of S

ites

Page 25: Internet Explorer 9 Presentation

Internet Explorer 9GPU Powered Graphics

Page 26: Internet Explorer 9 Presentation

The Gamers GPU

26

Page 27: Internet Explorer 9 Presentation

Everyone Has a GPU

27

Page 28: Internet Explorer 9 Presentation

GPU Processing Performance

28

Multi-Core CPU GPU

Page 29: Internet Explorer 9 Presentation

Exponential Growth in GPU Power

John D. Owens, David Luebke, Naga Govindaraju, Mark Harris, Jens Krüger, Aaron E. Lefohn, and Tim Purcell. A Survey of General-Purpose Computation on Graphics Hardware. Computer Graphics Forum, 26(1):80–113, March 2007. We acknowledge Computer Graphics Forum, Eurographics (The European Association for Computer Graphics) and Blackwell Publishing.

Page 30: Internet Explorer 9 Presentation

Windows Experience Index - GPU

30

1 2 3 4 5 6 7 8

Windows Experience Index

Graphics Scores of Vista and Win7 Users

4% 15% 32% 27% 12% 10%

Page 31: Internet Explorer 9 Presentation

My Laptop WEI Score

Page 32: Internet Explorer 9 Presentation

GPU Powered Graphics

Page 33: Internet Explorer 9 Presentation

GPU Powered Canvas

Page 34: Internet Explorer 9 Presentation

GPU Powered SVG

Page 35: Internet Explorer 9 Presentation

GPU Powered Video

Page 36: Internet Explorer 9 Presentation

GPU Powered Text

Page 37: Internet Explorer 9 Presentation

GPU Powered CSS3

Page 38: Internet Explorer 9 Presentation

Behind the ScenesCompiled JavaScriptGPU Powered Graphics

Page 39: Internet Explorer 9 Presentation

Demo: Flying Images

Page 40: Internet Explorer 9 Presentation

Flying Images – One Animation

40

IE8

IE9

Page 41: Internet Explorer 9 Presentation

IE8 Hardware Usage

Page 42: Internet Explorer 9 Presentation

IE9 Hardware Usage

Page 43: Internet Explorer 9 Presentation

Measuring Performance

Page 44: Internet Explorer 9 Presentation

Performance Metrics Today

<html>

<head> <script type="text/javascript"> var start = (new Date).getTime(); </script> </head>

<body> <script type="text/javascript"> var pageLoad = (new Date).getTime() - start; </script> </body>

<img src="http://www.site.com/beacon.png" />

</html>

Page 45: Internet Explorer 9 Presentation

Performance Metrics Tomorrow

// after page is loadedvar pageLoad = window.timing.timingMeasures.navigation;

// get access to all the timing information:JSON.Stringify(window.msPerformance);

Page 46: Internet Explorer 9 Presentation

Demo: Web Timings

Page 47: Internet Explorer 9 Presentation

Try it out and send feedback…

Page 48: Internet Explorer 9 Presentation

IE9 is Fundamentally Different