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.
Full Query
ID Summary Priority Status
854795 decode and downsample images at the same time for memory savings P1 RESOLVED
938470 Investigate increasing usable memory on FxOS by delaying homescreen launch -- RESOLVED
939056 B2G NFC: enable/disable MOZ_NFC at runtime -- RESOLVED
944659 Considerable amounts of script-sources P2 RESOLVED
945152 Make memory of TypedArrays returned by XHR backing with the local file -- RESOLVED
945161 Decode big jpeg image to a lower resolution version for low end devices P2 RESOLVED
945166 Merge JS bytecode, jit code, type tree and shape tree of iframes of embedded YouTube videos. -- REOPENED
945174 [META] Evaluate zram performance and Bug 899493 P3 RESOLVED
945185 Show only first N images in image uploader for low-end devices. -- RESOLVED
951531 framebuffer to use RGB565 16bit -- RESOLVED
951601 Disable memory-pressure temporary for launching new content processes. -- RESOLVED
956215 Homescreen still uses data urls (pngs), wasting memory P1 RESOLVED
957509 Reduce USS of Nuwa and preallocated process -- RESOLVED
959966 [tarako] Avoid preallocated process from being killed for low memory devices. -- RESOLVED
960894 Utilize one single RIL worker in DSDS -- RESOLVED
961348 [meta][tarako] High loading of foreground processes switching to background. P1 RESOLVED
962384 Resume image decoding after we get enough memory space within the hard limit of image buffer size -- RESOLVED
962444 Proposal of moving logic of data usage examination into System app -- RESOLVED
962987 [tarako] Move screenshoting to before closing animation and use cache in cardview if there is P2 RESOLVED
963477 [Tarako] Suppress GC & CC temporarily during launching or switching apps. -- RESOLVED
964599 [Tarako] Fine tune the kernel parameters to get better launch time P3 RESOLVED

21 Total; 1 Open (4.76%); 20 Resolved (95.24%); 0 Verified (0%);


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