We're happy to announce that the 'Gecko Profiler' is ready for broad usage.
This is a cross-platform profiler (win, mac, linux, fennec) for platform
code (C/C++) that is easy to setup, lets you focus your view on 'jank'
events, can be kept always-on to provide something like Shark's WTF Mode,
exports small profiles for attachment/linking to bugzilla.
With this profiler you'll be able to ask users to submit a performance
profile by following a few simple steps that takes approximately 10 minutes
and does not require building firefox or setting up PDBs/symbols:
https://developer.mozilla.org/en/Performance/Reporting_a_Performance_Problem
By switching from nightly to the profiling-nightly channel power-users will
be able browse the web with low overhead profiling enabled, catch short
jank and report them. For instruction how to set this up see:
https://developer.mozilla.org/en/Performance/Profiling_with_the_Built-in_Profiler#Running_the_profiler
For more detailed technical explanation see:
https://developer.mozilla.org/en/Performance/Profiling_with_the_Built-in_Profiler
http://benoitgirard.wordpress.com/2012/03/30/writing-a-profiler/
You can see our known issue and feature requests here:
https://bugzilla.mozilla.org/buglist.cgi?quicksearch=component%3Agecko;list_id=3226726
Here's a sample profile collected while writing this email in gmail:
http://people.mozilla.com/~bgirard/cleopatra/?report=AMIfv95DnNDRY9gdUBtTt0adpr0-zQLHOanXop-5TlO0IbzwsukXjV28HmReUwETPO54cC0-xPj-7wuoLujcn-bY_bt1KT_tYRA6QMilvnQeqbtxTWT4pk26Xlr8t5si2f-sFlVLmHl3SYV6J5TgKBRj5EhFHQPT6w
Please file bugs and feature requests to 'Core::Gecko Profiler'.
Our next priorities with this tool is:
(1) Profiling multiple threads (bug
734691<
https://bugzilla.mozilla.org/show_bug.cgi?id=734691>
)
(2) JS Integration (Bug
736299<
https://bugzilla.mozilla.org/show_bug.cgi?id=736299>
)
(3) Automated profile collection for certain performance test suites
(4) UI improvements
Here's a preemptive Q&A:
Q: Why write a new profiler instead of using VTune, Instruments or X?
A: While the feature set of the Gecko Profiler and some specific profiler
does overlap the Gecko Profiler provides features not covered by other
profilers. It integrates with our event loop responsiveness and can
correlate samples with jank, it doesn't require a custom build, it doesn't
require large PDBs to profile, the profiles can be exported to others, it
works across platform, on android it doesn't require an unlock phone etc...
Likewise it doesn't provide all the functionality of some popular profilers
so you will likely still want to use them.
- Benoit Girard