|
|
| Line 1: |
Line 1: |
| = Taipei Performance Team =
| |
| This page is for tracking tasks of the performance team at Mozilla Taipei Office. | | This page is for tracking tasks of the performance team at Mozilla Taipei Office. |
|
| |
|
| == 2014 Q2 Plans == | | == Team Structure == |
| * 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 == | | === Members === |
| * Memory | | |
| | * Kan-Ru Chen (:kanru) |
| | * Thinker Lee (:thinker :sinker) |
| | * Cervantes Yu (:cyu) |
| | * Ting Yu Chou (:tchou) |
| | * Wei Cheng Pan (:wcpan) |
| | * Greg Weng (:gregweng) |
| | |
| | === Domain Areas === |
| | |
| | * IPC / DOM::Content Processes |
| ** Nuwa | | ** Nuwa |
| *** [[NuwaTemplateProcess]] | | * Performance |
| *** [https://bugzilla.mozilla.org/buglist.cgi?list_id=9540666&short_desc=Nuwa&resolution=---&resolution=FIXED&resolution=INVALID&resolution=WONTFIX&resolution=DUPLICATE&resolution=WORKSFORME&resolution=INCOMPLETE&resolution=SUPPORT&resolution=EXPIRED&resolution=MOVED&query_format=advanced&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&bug_status=RESOLVED&bug_status=VERIFIED&bug_status=CLOSED&short_desc_type=allwordssubstr Bugs] | | * Memory leak analysis |
| ** script-sources
| | * JavaScript Engine |
| *** In b2g and homescreen it consumes 4MB ~ 5MB totally.
| | * Layout / Gfx |
| *** In facebook and twitter it consumes ~1.3MB for each. | | |
| *** Need to investigate the benefits of disabling it under zRam. | | == Team Management == |
| *** [https://bugzilla.mozilla.org/show_bug.cgi?id=944659 Bug 944659] - Considerable amounts of script-sources
| |
| ** Misc
| |
| *** [https://bugzilla.mozilla.org/show_bug.cgi?id=941792 Bug 941792] - Make sure decommitting actually works on B2G
| |
| *** [https://bugzilla.mozilla.org/show_bug.cgi?id=944224 Bug 944224] - Considerable amounts of images as dataURLs
| |
| * IPC
| |
| ** [https://bugzilla.mozilla.org/show_bug.cgi?id=915733 Bug 915733] - Linux/or POSIX aio instead of IO thread
| |
| ** shmem for big data chunks
| |
| * Launch time of Apps
| |
| ** Preload JS code with Nuwa
| |
| ** Precompile JS code with the baseline compiler
| |
| ** Profiling
| |
| * Animations
| |
| ** use caches for display lists to reduce overhead of nsIFrame::BuildDisplayList()
| |
| *** https://groups.google.com/d/msg/mozilla.dev.tech.layout/BL3BNQu4sSA/CMHWMEHp9x0J
| |
| *** https://bugzilla.mozilla.org/show_bug.cgi?id=908626
| |
| * Task Tracer
| |
| ** https://bugzilla.mozilla.org/show_bug.cgi?id=908995
| |
| ** https://groups.google.com/d/msg/mozilla.dev.b2g/dr3RrYUvP-w/Q51za7NvIWwJ
| |
| ** Keep the tracks of tasks
| |
| ** TODOs
| |
| *** [https://bugzilla.mozilla.org/show_bug.cgi?id=916409 Bug 916409] - data retrieving tool and protocol
| |
| *** [https://bugzilla.mozilla.org/show_bug.cgi?id=916410 Bug 916410] - Integrate it with Cleopatra
| |
| *** Mark event sources
| |
| * XHR Batch Queue API
| |
| ** https://wiki.mozilla.org/WebAPI/XHRBatch
| |
| ** Submit a XHR to a queue on the device, the platform will handle the XHR until it is completed
| |
| ** Notify the App while all XHR on the queue is completed
| |
| ** The app can check its own queue
| |
| ** The app can be killed, or being stopped by the user, while XHR is still running.
| |
| ** The platform will wake up the app while the queue is completed an the app is not running.
| |
| * Stability Issues
| |
| ** [https://bugzilla.mozilla.org/show_bug.cgi?id=926734 Bug 926734] - [Flatfish][Profiling]: When starting up Gecko profiling tool, system got hang.
| |
| ** [https://bugzilla.mozilla.org/show_bug.cgi?id=922548 Bug 922548] - [Flatfish][Profiling]: Fails to analysis the parsed file for Gecko Profiling tool.
| |
| ** [https://bugzilla.mozilla.org/show_bug.cgi?id=940851 Bug 940851] - Gecko IPC hangs during boot on jb-gonk.
| |
| ** [https://bugzilla.mozilla.org/show_bug.cgi?id=808080 Bug 808080] - IPC parent aborts due to too large allocation for infallible array in PContent::Msg_AsyncMessage.
| |
| ** [https://bugzilla.mozilla.org/show_bug.cgi?id=807738 Bug 807738] - IPC parent aborts with malformed PHttpChannel::Msg_AsyncOpen.
| |
| ** [https://bugzilla.mozilla.org/show_bug.cgi?id=781594 Bug 781594] - ABORT: not reached: ipc/ipdl/PLayers.cpp, line 4069.
| |
|
| |
|
| == Ideas == | | === Dashboard === |
| * 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.
| |
| * [https://bugzilla.mozilla.org/show_bug.cgi?id=945166 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.
| |
| * [https://bugzilla.mozilla.org/show_bug.cgi?id=945161 Bug 945161] - Stop decode big image for the browser app for low end devices.
| |
| * [https://bugzilla.mozilla.org/show_bug.cgi?id=945152 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.
| |
| * [https://bugzilla.mozilla.org/show_bug.cgi?id=945174 Bug 945174] - Evaluate zram performance and Bug 899493.
| |
| * [https://bugzilla.mozilla.org/show_bug.cgi?id=945185 Bug 945185] - Show only first N images in image uploader for low-end devices.
| |
| * [https://bugzilla.mozilla.org/show_bug.cgi?id=943254 Bug 943254] - [B2G][Browser] limit the memory consumption of the browser.
| |
| * [https://bugzilla.mozilla.org/show_bug.cgi?id=854795 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 =
| | * [http://standu.ps/project/perf-tw Status Report] |
| * http://standu.ps/project/perf-tw | | * [https://wiki.mozilla.org/TPEPerformance/Dashboard Project Dashboard] |
| | * [[TPEPerformance/Ideas|Ideas]] |
| | * [[TPEPerformance/Trash|Trash Can]] |
|
| |
|
| = 128MB = | | === Projects === |
| * 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>
| | * [[TaskTracer]] |
| {
| | * [[NuwaTemplateProcess|Nuwa Template Process]] |
| "id": "944659,945166,945161,945152,945174,945185,854795,957509,951601,963477,962987,964599,951531,939056,938470,961348,959966,956215,960894,962444,962384"
| | * [[MemoryProfiler|Memory Profiler]] |
| }
| | * [[TPEPerformance/128MB|128MB]] |
| </bugzilla>
| | * [[WebAPPGeneralLifeCycle|Web App General Life Cycle]] |
| | * [[TPEPerformance/FxOS_Responsiveness|FxOS Responsiveness]] |
|
| |
|
| = Extending automated performance testing converage = | | == Weekly Report == |
| * Proposed test cases to extend performance coverage.
| | <createbox> |
| ** Suspend/resume
| | align=right |
| **: Time: receiving "power button" event -> first frame
| | type=create |
| ** Boot time
| | preload=TPEPerformance/2016-0-0&action=submit |
| **: Time: initrc -> lock screen ready. (visually loaded)
| | default={{#time: 2016-m-d | thursday}} |
| ** Scrolling response time
| | prefix=TPEPerformance/ |
| **: Time: receiving touch event -> first composition that reflects the scrolling.
| | </createbox> |
| ** 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 = | | {| class="toccolours" style="width: 100%" align="center" |
| see https://wiki.mozilla.org/TPEPerformanceTrash
| | |2014/Q2 |
| | {{Special:PrefixIndex/TPEPerformance/2014_Q2}} |
| | |- |
| | |2016/Q1 |
| | {{Special:PrefixIndex/TPEPerformance/2016-03}} |
| | |- |
| | |2016/Q2 |
| | {{Special:PrefixIndex/TPEPerformance/2016-04}} |
| | {{Special:PrefixIndex/TPEPerformance/2016-05}} |
| | {{Special:PrefixIndex/TPEPerformance/2016-06}} |
| | |} |