Skip to content

{ Category Archives } Visualizing

work-in-progress tooling: feeding GWT SpeedTracer systemtapped mozilla performance data

Now that Thunderbird 3.1 is string/feature-frozen it’s time to focus on performance.  This post is just to make sure that people who are also working on similar things know what I’m up to.  For example, there’s some very exciting work going on involving adding a startup timeline to mozilla-central that everyone keeping up-to-date with mozilla [...]

Tagged , ,

a systemtap script to attribute JS string memory costs to the creating JS functions

—– js_GC data pages: 96731 total vm pages: 234849 ### KiB 11376 839 BF_format log4moz.j:487 15906 725 mime_emitter_writeBody jsmimeemitter.j:381 148 576 MimeMessage_coerceBodyToPlaintext mimemsg.j:341 4460 492 gloda_ds_queryFromQuery datastore.j:2988 9655 387 <MYSTERIOUS> <BEYOND THE VEIL>:0 911 237 gloda_content_quoted connotent.j:267 1723 144 gloda_indexMessage index_msg.j:2597 187 141 gloda_content_content connotent.j:290 170 108 gloda_content_getContent connotent.j:166 1917 73 gloda_identity_toString datamodel.j:785 1775 69 [...]

Tagged

performance annotated SQLite EXPLAINation visualizations using systemtap

For the Thunderbird 3.1 release cycle we are not just fixing UX problems but also resolving various performance issues.  The key to defeating performance problems, like the key to defeating bad guys in movies, is to make sure they are dead.  If you want to fight the bad guy again, you can just assume that [...]

Tagged , , , ,

So’s your facet: Faceted global search for Mozilla Thunderbird

Following in the footsteps of the MIT SIMILE project’s Exhibit tool (originally authored by David Huynh) and Thunderbird Seek extension (again by David Huynh), we are hoping to land faceted global search for Thunderbird 3.0 (a la gloda) in beta 4. I think it’s important to point out how ridiculously awesome the Seek extension is.  [...]

Tagged , , , ,

Using VMWare Record/Replay and VProbes for low time-distortion performance profiling

The greatest problem with performance profiling is getting as much information as possible while affecting the results as little as possible.  For my work on pecobro I used mozilla’s JavaScript DTrace probes.  Because the probes are limited to notifications of all function invocations/returns with no discretion and there is no support for JS backtraces, the [...]

Tagged , , , , , , , ,

displaying execution traces on a SIMILE timeline

chroniquery can now output JSON for display using the SIMILE timeline widget.  And I am finally done trying to figure out what was going wrong.  Click the pictures to experience the timeline sensation for yourself. Related interesting things: Supports a fancy if specific constraint mechanism.  For example, PrepareAndDispatch is only displayed in the context of [...]

Tagged , ,

understanding where unit tests go wrong with object diffs

In our last chroniquery adventure, we used roc‘s chronicle-recorder to trace the execution of an xpcshell unit test and chroniquery (repo info) to use that trace to help us understand what was happening in some particularly confusing C-ish code.  Actually, we’re doing that this time too, but the bag of tricks now contains additional tricks. [...]

Tagged ,

thunderbird, gloda, exptoolbar, protovis, paninaro, oh oh oh

Thunderbird.  With the global database, gloda.  Using the exptoolbar extension.  Using the protovis javascript visualization library.  For reals!  Not a prank!  Just grab the most recent XPI or grab the repo.  And be using a nightly (beta 2 might work?) What you are looking at: The exptoolbar search results page, augmented with a visualization. Each [...]

Tagged , , ,

understanding libmime using chroniquery and unit tests

Mailnews’ libmime is one of the harder modules to wrap one’s head around.  8-letter filenames where the first four letters tend to be “mime”, home-grown glib-style OO rather than actual C++, and intermingling of display logic with parsing logic do not make for a fun development or even comprehension experience. Running an xpcshell unit test [...]

Tagged , ,

gaudily colorized gdb backtraces! woo!

Like many people who have overdosed on syntax highlighting and other forms of colorization, my brain is no longer able to process monochrome text displays.  Which is why I have been so excited about gdb with python crammed inside.  (The good sense of “crammed”, wherein one is cramming cookies in one’s mouth.)  I have perverted [...]

Tagged , ,