TPEPerformance: Difference between revisions

From MozillaWiki
Jump to navigation Jump to search
(add a section of extending performance testing coverage)
Line 103: Line 103:
* Automatically generate marionatte scripts
* Automatically generate marionatte scripts
* build test servers
* build test servers
* Make a iframe as a history entry


= Current Status =
= Current Status =

Revision as of 08:16, 8 January 2016

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
  • Make a iframe as a history entry

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