# Page Phase Time Chao (Ray)

## Presentation on theme: "Page Phase Time Chao (Ray)"— Presentation transcript:

Page Phase Time Chao (Ray) Feng rayfeng@Microsoft.com @crazychao

Problems to Solve  Tells when a user, in his/her mind, considers a web page is “done”. -Not relying on Browser Events (e.g. Onload), Network Timing (e.g. TTLB), Above Fold Time (a.k.a. AFT), any pre-defined thresholds of pixel changes on the screen, or pre-defined UI element injection/tracking  Measures PLT for modern web pages that are being dynamic in rendering.  Platform/Browser/Device independent performance measurement method that can be universally applied

Amazon Product Page Onload: 4.7 second http://ppt.msn-dev.com/report/#/MetrixDetail/16085/ 0 second1.7 second1.8 second2.2 second4.1 second

A more dynamic web page Page Phase Time4 Phase 0 Phase 1 Phase 2 Phase 3 Phase 4

Demo http://ppt.msn-dev.com Note: Page Phase Time is a Microsoft research project and this web site will be available until mid of Nov 2013.

Demo  OReilly.com http://ppt.msn-dev.com/report/#/MetrixDetail/68853/

Page Phase Time (PPT)  A performance measurement methodology that measures performance based on user perception, by intelligently categorizing a whole page load cycle into major phases, that represent meaningful rendering changes.  How: analyze screenshots or video captures

Algorithm – Categorizing Phases  Principle: To detect visual changes that are substantial enough by checking the rendering transformation acceleration’s deviation 1.Record page load cycle into N screenshots (10 frames per second) 2.Calculate pixel changing velocity -V 1, V 2, V 3, … V n-1 (where V i = Pixel change ratio of Screenshot i+1 and screenshot i) 3.Calculate pixel changing acceleration -a 1, a 2, a 3, … a n-2 (where a i = V i+1 – V i ; if a i < 0, then a i = 0) 4.Scatter Plot acceleration numbers, and find outliers beyond 1 standard deviation -{A} = ∀ {a i > [avg + σ(a)]} 5.Filtering out adjacent outliers

Algorithm – Categorizing Phases

What If We Only Need ONE Number?  Key Phase Time -- the first time that golden section (or similar area*) has most substantial content rendered among all phases.golden section  *Similar area includes center, center top, center right, etc.

Algorithm – Finding “Key Phase” and “Key Phase Time”  Principle: Get pixel changing velocity of golden section areas among all phase, and find the 1 st outlier. Golden Section Why choose Golden Section? Web page or any UI design is an art. Artist will always follow this rule of beauty which has impact on human beings for at least 2,400 years. See http://en.wikipedia.org/wiki/Golden_ratiohttp://en.wikipedia.org/wiki/Golden_ratio

Algorithm – Finding “Key Phase” and “Key Phase Time” Key Phase 1.Get tagging areas of all detected phases (use Golden Section as default) 2.Calculate *phase* pixel changing velocity -V1, V2, V3, … Vn-1 (where Vi = Pixel change ratio of tag i and tag i-1; for i=1, use first phase’s tagging area to compare with a blank image) 3.Find first outliers beyond 1 standard deviation. The corresponding image is called “image tag”. The corresponding phase will be “Key Phase” and corresponding timing will be “Key Phase Time” -Image Tag = First {ai > [avg + σ(a)]} 4.If the “image tag” found is a blank image (or with only 1 color), loop step 1~3 with other potential tagging area like center, center top, center left, center right, etc.

Summary  Page Phase Time is a Platform/Browser/Device independent algorithm, and solves the dynamic web page PLT measurement issue. You may try it with any web page or even mobile apps.  Refer to PPT blog post on O’Reilly for more information.PPT blog post  @crazychao for any feedback. @crazychao  Thank you!