Performance:Tools: Difference between revisions

Jump to navigation Jump to search
The section of this page about leak tools was very out of date, so I removed it.
(The section of this page about leak tools was very out of date, so I removed it.)
Line 1: Line 1:
= Memory Leaks =
= Profiling tools =
 
Tools for tracking down memory leaks. See also [[Performance:Leak_Tools]] which contains more details for each tool.
 
* [http://www.mozilla.org/projects/xpcom/MemoryTools.html XPCOM Memory Leak tools] (this document also has information on Mozilla's other memory leak tools). See also a [http://www.mozilla.org/performance/leak-tutorial.html tutorial] on using these tools and the refcount balancer.
* [http://www.ibm.com/software/awdtools/purify/ Rational Purify®]. (Commercial)
* [http://www.glowcode.com/summary.htm GlowCode]. (Commercial)
* [http://perens.com/FreeSoftware/ElectricFence/ ElectricFence].
** "Electric Fence ... uses the virtual memory hardware of your system to detect when software overruns the boundaries of a malloc() buffer. It will also detect any accesses of memory that has been released by free(). Because it uses the VM hardware for detection, Electric Fence stops your program on the first instruction that causes a bounds violation."
Specifically, it works by placing each heap allocation on its own VM page. Since the dynamic footprint of the browser is pretty large, this may make it tough to use "in real life".
* [http://lxr.mozilla.org/mozilla/source/tools/leaky/leaky.html Leaky]. This is a home-grown tool that [mailto:kipp@netscape.com Kipp] put together:
** "Its a tool called leaky. What it does it help you track down memory leaks and some kinds of memory corruption. It also has entry pointers for logging addref/release calls. The key thing that leaky does is this: it logs all calls to malloc/free/realloc/new/delete into a log file. The logging data includes information about size and address, as well as the *call stack of the operation*. The leaky program then can translate the call stack data from addresses into symbols and then dump the data out." *
* [http://www.mozilla.org/performance/refcnt-balancer.html refcount balancer]. This is another home-grown tool that does finer-grained instrumentation and allows you to focus on specific objects rather than entire runs.
* [http://www.parasoft.com/products/insure/index.htm Insure++®]. (Commercial) Evaluation copy is free. [http://www.parasoft.com/press/releases/insure/ins_lite_ver.htm Linux version].
* [http://www.andreasen.org/LeakTracer/ LeakTracer].
* [http://www.inf.ethz.ch/personal/biere/projects/ccmalloc/ ccmalloc].
* [http://quorum.tamu.edu/jon/gnu/ debauch] Dead?
* [http://www.linkdata.se/sourcecode.html memwatch].
* [http://www.geodesic.com/products/greatcircle.html Geodesic Systems' GreatCircle] Dead? [mailto:fur@netscape.com Scott Furman] has done some preliminary work to get this product working with Mozilla.
* [mailto:jseward@acm.org Julian Seward] writes of [http://valgrind.org/ Valgrind], an open-source memory debugger and profiler for Linux/x86: `Snapshots 20020511 and later of the tool are able to run Mozilla correctly on both Red Hat 6.2 and 7.2. It will also do detailed low-level I1/D1/L2 cache profiling, so you can see which bits of Mozilla create cache misses. You'll need the patch from [http://bugzilla.mozilla.org/show_bug.cgi?id=124335 bug 124335] if working with versions prior to 1.0RC2.
 
= Profiling =


The following tools are used to measure product performance.
The following tools are used to measure product performance.
Confirmed users
729

edits

Navigation menu