Performance: Difference between revisions

From MozillaWiki
Jump to navigation Jump to search
No edit summary
Line 48: Line 48:
* [[Using_XPerf| xperf]]
* [[Using_XPerf| xperf]]
** [[Tracing VirtualAlloc With Xperf]]
** [[Tracing VirtualAlloc With Xperf]]
==Terminology==
; Main Thread : A browser generally runs all its things sequentially on a single thread, which is typically referred to as '''the main thread'''. This means that Javascript can change stuff which affects the screen, and Javascript code will not continue before the screen reflects the requested changes, or other changes. This is a big bottleneck since it's hard to run things in parallel.
; [http://www.techhive.com/article/229024/geek101_vsync.html v-sync] : Vertical synchronization to the monitor's ''beam reset''. It's used at contexts of animations, where in order to achieve 100% smoothness of animation, each frame should be sent to the display such that it matches the v-sync timing.
; [https://wiki.mozilla.org/Platform/GFX/OffMainThreadCompositing OMTC] : Off main thread composition. When rendering graphics in Firefox, this means that the main thread just ''prepares'' the rendering for each frame, but then a heavy chunk of the rendering (''composition'') happens on a different thread. This allows to have more free time on the main thread, which in turn means it can run more Javascript stuff on each frame. BenWa's [http://benoitgirard.wordpress.com/2012/05/15/off-main-thread-compositing-omtc-and-why-it-matters/ blog post] explains OMTC in details.
; [https://wiki.mozilla.org/Platform/GFX/APZ APZ] : Async Pan Zoom (Controller) - technique which browsers sometimes use to zoom and/or pan (move the page up/down/left/right) on a thread which isn't the main thread, therefore allowing longer Javascript calculations on the main thread without affecting the responsiveness for certain operations (specifically - pan and zoom).
; [https://wiki.mozilla.org/Project_Silk Project Silk] : Project to unify and improve animation in Firefox by using global v-sync timing. Before silk, the timing was done at the "refresh driver" using timeouts, where on each such iteration it would run everything the browser needs to run for a single frame. With silk, there's an external module which generates events synchronized to v-sync, which hopefully improves animation smoothness. Check [http://www.masonchang.com/blog/2015/1/22/project-silk this mchang's blog post] for an overview of Project Silk and [https://github.com/changm/SilkDocs/blob/master/silk.md this document] for Project Silk architecture.


==Archive (Delete soon) ==
==Archive (Delete soon) ==

Revision as of 15:10, 13 August 2015

Performance

Mozilla's desktop performance team focuses on improvements to the Gecko platform and desktop Firefox. You can find us on the #perf channel of irc.mozilla.org or email perf@mozilla.com

The team:

  • Vladan Djeric, :vladan on IRC, blog
  • Aaron Klotz :aklotz, blog
  • Roberto Vitillo :rvitillo, blog
  • Avi Halachmi :avih, blog
  • David Teller :Yoric, blog
  • David Major :dmajor

Current Projects

Measuring & improving Firefox performance

Write-ups

Tools

Archive (Delete soon)

Old progress reports:

Old Projects

Tools:

Old Documentation and Presentations: