Thursday, August 17, 2006

Someone write this Firefox plugin

I browse with a lot of Firefox windows open and each with many tabs.
I probably never have fewer than a dozen tabs open across three or
more windows. Often, I'll have 50+ tabbs open, and usually Firefox
does alright. Some web sites, however, behave poorly. Whether Flash,
animated images or most often, JavaScript, they use up CPU when I'm
not looking at them. In some cases, this is legitimate and
reasonable. I like the fact that Gmail checks for new mail and is
always reasonably up to date. However, several sites use CPU for no
good reason. For example, the old BGG menu system (which Scott has
thankfully replaced) called setInterval with a timeout of
30ms. For a menu system. Other web sites are worse.
Unfortunately, isolating this sort of problem is hard when you have 30
tabs open. I can see Firefox using 50% CPU, but why?

So, someone needs to write a Firefox "process monitor". It's not
exactly a standard process monitor, in that JavaScript lacks typical
processes, but it would provide a few things. First, it would provide
a list of current setInterval and setTimeout calls
by origin, original scheduled time and remaining time. Second, it
would provide some ability to pause (or even auto-pause, when not in
the foreground) tabs from using CPU resources. This would make fault
isolation easier and would be useful to say, pause everything other
than Gmail. Finally, if possible, it would provide some estimate of
CPU usage on a per-open-page basis, like a traditional process
monitor. Right now, Firefox pops up the "unresponsive script" warning
at some threshhold, so I'm hoping there's some ability to measure the
usage in a more granular way. I don't know enought about SpiderMonkey
to know how feasible any of this is, but I really need it, especially
as more and more nice JavaScript heavy "Web 2.0" apps appear.

For now, Venkman, the JavaScript debugger is of some assistance, but
not nearly as much as I'd like. Is there some other tool out there
I'm not finding that offers some of this capability? Anyone care to write one?


  1. I've been looking for this exact plug-in. Do you know if anyone ever created one?

  2. Ditto. I haven't found anything close to this either. It would be rad if it monitored cpu/memory performance for each active extension (plug-in) installed, as well.

  3. I'm having the same problem - as described here, with a potential solution(?).

  4. Saw Ff xt #9429 here at LH: Was primed for picking a potential solution up after I had previously sought to find one in vain.

    Subsequent citation should appeal to you: "... every tab you push to the TooManyTabs row frees up memory by turning the tabs you shelve into idle tabs"