Performance:Probes

From MozillaWiki
Revision as of 17:35, 1 August 2007 by Stan Shebs (talk | contribs) (prior work)
Jump to navigation Jump to search

Probing is the general concept of instrumenting code in a selective way to collect particular kinds of data. Probes can consist of special code compiled into a program, and/or a monitoring mechanism inserted by an external program.

We propose to build a system of probes to monitor Gecko performance, with a focus on breaking down time and space consumption by subsystem. The goal is to get results that are finer-grained than Tp/Tp2 etc, which measure the browser as a whole, but coarser-grained than profiling, which works at a per-function level and does not aggregate multiple functions that are parts of the same subsystem.

Requirements

nsProbes

"nsProbes" is a proposal to insert probes programmatically; see [1] for details.

DTrace

DTrace [2] is a general dynamic tracing framework produced by Sun. It is a powerful system that includes OS kernel integration and a scripting language. Mozilla integration for static probing has been submitted as a patch; see 370906.

DTrace is only fully functional for Solaris, but is being worked on for FreeBSD and is expected to be part of Mac OS X 10.5 (Leopard).