Feed on
Posts
Comments

Archive for the 'Uncategorized' Category

Profiler backend news, 30 April 2013

There has been a lot of activity since the previous report, mostly along three lines of development: multithreaded profiling, getting profiling working for Android nightlies, and improving the quality of the stack traces. We now have native unwinds working out-of-the-box for 32- and 64-bit Linux nightlies, and very nearly working for Android nightlies. Multithreaded profiling: [...]

Profiler backend news, 10 April 2013

Here is some news about work on Firefox’s built-in time profiler (SPS), and in particular the work being done to use native stack unwinding by using the in-tree copy of the Breakpad unwinding library. There has been a lot of activity in the two and a half weeks since we got back from Paris.  Some [...]

Valgrind now supports JEMalloc builds directly

Following some sterling hackery by Alexander Potapenko and Philippe Waroquiers, Valgrind/Memcheck now has direct support for JEMalloc, tcmalloc, and any other allocation library offering a malloc-style interface. This means you no longer need to build Firefox using –disable-jemalloc on Linux.  You do still need –enable-valgrind, to stop V freaking out when JS GC scans the [...]

On Android, we have a couple of ways to periodically extract stack traces from a running Firefox: the built in profiler, and Valgrind.  In principle oprofile could also produce stacks at intervals, although it doesn’t. Looking at zillions of stacks, or text-only output derived from them, isn’t much fun.  What I’d really like to do [...]

Various sets of fixes have been committed for Valgrind on Lion.  It now works well enough to run 64 bit Firefox builds and get sane results.  32 bit builds run too, but appear to hang, for threading related reasons I cannot figure out, despite quite some investigative effort. There may be some false positives from [...]

This is a long post.  Here’s a summary. the good news: Valgrind’s Memcheck tool now works well enough on Nexus S that it can run Firefox and find real bugs, for example bug 688733.  The false error rate from Memcheck is pretty low, certainly low enough to be usable. as of this morning, all required [...]

This is really a RFC. It seems to me that many end-user bugzilla reports about excessive memory use share a common structure.  First, the user reports that “I did A, B and C, had a coffee, went back to my machine and found that Firefox was sitting on N gigabytes of memory.”  Then follows lots [...]

I’ve been wondering how much of the data we keep in memory is actually useful, as opposed to being bits which are mostly or entirely constant.  Recently I hacked up a Valgrind tool to get some initial measurements. Imagine a machine instruction that does a 32-bit memory read.  If the read value is observed only [...]

Back in January I blogged about using Helgrind to check for threading errors in Firefox’s JS engine.  That effort was the first step towards a bigger goal, namely to find and remove all unintended data races in the browser proper. I have been wanting to get a point where our C++ developers can routinely use [...]

We’ve been chipping away at memory use of Firefox 4 for a couple of months now, with good results.  Recently, though, I’ve been wondering if we’re measuring the right things.  It seems to me there’s two important things to measure: Maximum virtual address space use for the process.  Why is this important?  Because if the [...]

Next »