TPEPerformance

From MozillaWiki
Revision as of 03:50, 10 February 2015 by Kk1fff (talk | contribs) (add a section of extending performance testing coverage)
Jump to navigation Jump to search

Taipei Performance Team

This page is for tracking tasks of the performance team at Mozilla Taipei Office.

2014 Q2 Plans

  • IPC with Async IO
  • Nested Processes
  • JS/GC/CC
    • Compacting GC
      • When will exact rooting be enabled safely?
    • GC heap analysis
      • How many and what pages/entries are touched?
    • the runtime XPCOMPtr information as complementary info. of the CC.
    • Instruction selector
    • Instruction scheduler
  • session restore of WEB Apps
    • to get better memory usage and be flexible
  • Necko
    • WEB cache
  • Nuwa
    • Fix the IPC issues of preload-slow-things at the Nuwa process.
      • waiting for quiescent moment of the b2g process.
  • Tarako
    • Priority manager

Working On

Ideas

  • log size of gc heaps after every running JS runnable.
  • Track JSObjects that fallback to dictionary mode
    • Time spent(impaction) on objects of dictionary mode
    • For games
  • command queue for SVG frames
  • Compare loading time for loading from scratch and from dumped image.
  • Establish a benchmark to measure memory usage. Refer to AWSY.
  • Bug 945166 - Merge JS bytecode, jit code, type tree and shape tree of iframes of embedded YouTube videos.
    • Ion/baseline codes, bytecode, script-source, type, shape, etc.
  • Bug 945161 - Stop decode big image for the browser app for low end devices.
  • Bug 945152 - Make memory of TypedArrays returned by XHR backing with the local file.
    • Use-case tables of keyboard apps.
    • Tim is in charged of the use-case.
  • Bug 945174 - Evaluate zram performance and Bug 899493.
  • Bug 945185 - Show only first N images in image uploader for low-end devices.
  • Bug 943254 - [B2G][Browser] limit the memory consumption of the browser.
  • Bug 854795 - decode and downsample images at the same time for memory savings
  • App session resuming
    • like hibernate
    • load an App from storage and restore to the states of last killed.
  • Media
    • Unified buffering
  • Evaluate the code generator for ARM in IonMonkey.
  • Parallelize layout and rendering by screen frames. -- VersionedDOM
  • Use object layout info (size of the object) to figure out what the object is a XPCOMPtr in.
    • To be a complementary information for CC and GC.
  • Tool to log and show restyling
    • What rules are referenced/matched?
    • Restyle roots and how many descendants?
    • Changes of DOM tree
  • Automatically generate marionatte scripts
  • build test servers

Current Status

128MB

  • Thrashing (GC <--> zRAM)
    • do experiments for proving
    • Solutions
      • stop GC
      • GC before switching to background
        • stop GC for memory pressure of background process.
    • Facts
      • memory pressure trigger GC, it brings pages from zRAM.
      • GC and memory minimize are called for switching to background.

Bugzilla query error

Array ( [type] => error [message] => http-bad-status [params] => Array ( [0] => 429 [1] => Unknown Error ) ) 1


Extending automated performance testing converage

  • Proposed test cases to extend performance coverage.
    • Suspend/resume
      Time: receiving "power button" event -> first frame
    • Boot time
      Time: initrc -> lock screen ready. (visually loaded)
    • Scrolling response time
      Time: receiving touch event -> first composition that reflects the scrolling.
    • Long drag/Contineously scrolling.
      During drag, providing a list of composition time. (will be a series of events), provide median and standard deviation.
    • Rotate
      Time: receiving rotate event (i.e., the motion has been recognized as a rotation) -> first redraw that reflects the rotation.
    • Pinch
      Time: gesture being recognized -> first that reflects the pinch.
    • Button click
      Time: touch event -> first redraw of button's look change
    • Screen transition, after clicking on a button
      Time: action -> to the first frame of transition.

Trash

see https://wiki.mozilla.org/TPEPerformanceTrash