On Wednesday 2013-01-09 19:20 -0800, L. David Baron wrote:
> On Wednesday 2013-01-09 19:01 -0800, Dave Mandelin wrote:
> > I've been thinking about bug triage for a long time, and since
> > it's a new year, I thought it might be a good time to try
> > something new. My observation is that our engineering bug triage
> > practices as of today <blunt>mostly range from crude to
> > nonexistent</blunt>. The release managers pick up the critical
> > bugs, but they don't track less important bugs and bugs that are
> > important for technical reasons, and it seems like they have to do
> > a lot of manual work and a lot of reminding of engineering teams.
> > Other issues stem from the lack of triage, like the thousands of
> > old open bugs littering the system, or the fact that contributors
> > can't use Bugzilla to find good things to work on.
>
> I think I've basically stopped using the bug system because it's too
> slow; it takes 10-30 seconds for a bug to load, and similar times
> for queries to run. So I keep work to do in a plain text file and
> ignore the bug system.
So I've been investigating the performance a bit, and I'm starting
to think this may be less Bugzilla's fault than Firefox's fault.
And I have been noticing that Firefox seems to be slowing down over
the time I've had the browser running (I typically don't restart
Firefox for days/weeks) more than it used to.
In particular, while loading a Bugzilla bug with the Gecko profiler
(which I couldn't get to work), I got this data on the error
console, which shows a 5.2 second GC pause (which I think does match
my experience lately; the jank has been pretty bad):
GC(T+488342.8) Total Time: 9171.1ms, Compartments Collected: 1192, Total Compartments: 1194, MMU (20ms): 0%, MMU (50ms): 0%, SCC Sweep Total: 209.2ms, SCC Sweep Max Pause: 209.2ms, Max Pause: 5232.6ms, Allocated: 880MB, +Chunks: 0, -Chunks: 1
Slice: 0, Pause: 5232.6 (When: 0.0ms, Reason: SET_NEW_DOCUMENT): Begin Callback: 0.1ms, Wait Background Thread: 0.2ms, Mark Discard Code: 22.4ms, Purge: 0.2ms, Mark: 67.2ms, Mark Roots: 66.4ms
Slice: 5, Pause: 43.4 (When: 5730.2ms, Reason: INTER_SLICE_GC): Mark: 40.8ms
Slice: 7, Pause: 43.0 (When: 6033.6ms, Reason: INTER_SLICE_GC): Mark: 40.3ms
Slice: 28, Pause: 44.1 (When: 7629.4ms, Reason: INTER_SLICE_GC): Mark: 42.4ms
Slice: 53, Pause: 42.4 (When: 12655.3ms, Reason: INTER_SLICE_GC): Mark: 40.0ms
Slice: 62, Pause: 42.1 (When: 13517.9ms, Reason: INTER_SLICE_GC): Mark: 40.6ms
Slice: 63, Pause: 43.1 (When: 13697.0ms, Reason: INTER_SLICE_GC): Mark: 40.3ms
Slice: 64, Pause: 43.2 (When: 13887.1ms, Reason: INTER_SLICE_GC): Mark: 40.3ms
Slice: 66, Pause: 43.0 (When: 14138.4ms, Reason: INTER_SLICE_GC): Mark: 40.2ms
Slice: 67, Pause: 43.7 (When: 14298.6ms, Reason: INTER_SLICE_GC): Mark: 40.9ms
Slice: 82, Pause: 42.5 (When: 16286.8ms, Reason: INTER_SLICE_GC): Mark: 40.5ms
Slice: 83, Pause: 42.2 (When: 16339.9ms, Reason: INTER_SLICE_GC): Mark: 40.6ms
Slice: 84, Pause: 42.3 (When: 16383.2ms, Reason: INTER_SLICE_GC): Mark: 40.9ms
Slice: 85, Pause: 43.2 (When: 16532.3ms, Reason: INTER_SLICE_GC): Mark: 40.3ms
Slice: 86, Pause: 43.3 (When: 16692.9ms, Reason: INTER_SLICE_GC): Mark: 40.3ms
Slice: 87, Pause: 43.5 (When: 16840.1ms, Reason: INTER_SLICE_GC): Mark: 40.6ms
Slice: 88, Pause: 42.6 (When: 16973.4ms, Reason: INTER_SLICE_GC): Mark: 41.0ms
Slice: 89, Pause: 43.3 (When: 17121.0ms, Reason: INTER_SLICE_GC): Mark: 40.2ms
Slice: 90, Pause: 43.7 (When: 17268.1ms, Reason: INTER_SLICE_GC): Mark: 40.8ms
Slice: 91, Pause: 43.4 (When: 17414.7ms, Reason: INTER_SLICE_GC): Mark: 40.4ms
Slice: 92, Pause: 42.3 (When: 17560.2ms, Reason: INTER_SLICE_GC): Mark: 40.6ms
Slice: 93, Pause: 43.3 (When: 17700.5ms, Reason: INTER_SLICE_GC): Mark: 40.3ms
Slice: 94, Pause: 42.0 (When: 17880.1ms, Reason: INTER_SLICE_GC): Mark: 40.4ms
Slice: 95, Pause: 42.5 (When: 18027.1ms, Reason: INTER_SLICE_GC): Mark: 40.9ms
Slice: 96, Pause: 43.3 (When: 18184.9ms, Reason: INTER_SLICE_GC): Mark: 40.5ms
Slice: 97, Pause: 43.5 (When: 18318.2ms, Reason: INTER_SLICE_GC): Mark: 40.6ms
Slice: 98, Pause: 43.3 (When: 18454.2ms, Reason: INTER_SLICE_GC): Mark: 40.4ms
Slice: 99, Pause: 43.1 (When: 18597.8ms, Reason: INTER_SLICE_GC): Mark: 40.2ms
Slice: 100, Pause: 43.3 (When: 18742.3ms, Reason: INTER_SLICE_GC): Mark: 40.4ms
Slice: 122, Pause: 43.1 (When: 20156.5ms, Reason: INTER_SLICE_GC): Mark: 40.3ms
Slice: 123, Pause: 43.2 (When: 20299.5ms, Reason: INTER_SLICE_GC): Mark: 40.3ms
Slice: 126, Pause: 1164.6 (When: 20506.3ms, Reason: CC_FORCED): Mark: 553.7ms, Mark Delayed: 7.4ms, Sweep: 579.7ms, Mark During Sweeping: 72.5ms, Mark Weak: 14.2ms, Mark Gray: 57.3ms, Mark Gray and Weak: 0.9ms, Finalize Start Callback: 2.4ms, Sweep Atoms: 19.8ms, Sweep Compartments: 190.9ms, Sweep Discard Code: 21.8ms, Sweep Tables: 84.7ms, Sweep Cross Compartment Wrappers: 3.2ms, Sweep Base Shapes: 47.5ms, Sweep Intital Shapes: 30.1ms, Sweep Type Objects: 2.2ms, Discard Analysis: 83.9ms, Discard TI: 6.5ms, Free TI Arena: 0.1ms, Sweep Types: 70.8ms, Clear Script Analysis: 6.1ms, Sweep Object: 17.8ms, Sweep String: 3.4ms, Sweep Script: 12.3ms, Sweep Shape: 219.0ms, Finalize End Callback: 28.3ms, Deallocate: 0.2ms, End Callback: 11.0ms
Totals: Begin Callback: 0.1ms, Wait Background Thread: 0.4ms, Mark Discard Code: 22.4ms, Purge: 0.2ms, Mark: 3163.1ms, Mark Roots: 66.4ms, Mark Delayed: 7.4ms, Sweep: 579.7ms, Mark During Sweeping: 72.5ms, Mark Weak: 14.2ms, Mark Gray: 57.3ms, Mark Gray and Weak: 0.9ms, Finalize Start Callback: 2.4ms, Sweep Atoms: 19.8ms, Sweep Compartments: 190.9ms, Sweep Discard Code: 21.8ms, Sweep Tables: 84.7ms, Sweep Cross Compartment Wrappers: 3.2ms, Sweep Base Shapes: 47.5ms, Sweep Intital Shapes: 30.1ms, Sweep Type Objects: 2.2ms, Discard Analysis: 83.9ms, Discard TI: 6.5ms, Free TI Arena: 0.1ms, Sweep Types: 70.8ms, Clear Script Analysis: 6.1ms, Sweep Object: 17.8ms, Sweep String: 3.4ms, Sweep Script: 12.3ms, Sweep Shape: 219.0ms, Finalize End Callback: 28.3ms, Deallocate: 0.2ms, End Callback: 11.0ms
Are there known bugs on stuff like this? (smaug pointed out
https://bugzilla.mozilla.org/show_bug.cgi?id=820602 , which could be
related.)