[Greasemonkey] Possible source of memory leaks
jdunck at gmail.com
Sat Jul 9 10:35:19 EDT 2005
On 7/9/05, Aaron Boodman <zboogs at gmail.com> wrote:
> > Yes, it's pertinent now. Because of the bug where removed elements
> > lose their listeners, command callbacks are called with expando props.
> Have you tested whether this actually occurs in 0.4? My extremely
> scientific test of opening and closing lots of tabs which used
> GM_registerMenuCommand showed no significant lossage in 0.4. Maybe it
> was a bad test. Let me know if you see leakage because...
I have not done any significant testing with 0.4. So you're right, I
shouldn't be chicken-littling.
> > I also just happened on this bug, which nails us again:
> > "calling addEventListener with a closure holding a content node leaks
> > the document"
> > https://bugzilla.mozilla.org/show_bug.cgi?id=241518
> Again, do you have evidence of this? It's a pretty obvious pattern to
> create a closure which holds a DOM node other than document, and I
> usually avoid it like the plague.
Sorry, I should have been clearer. What I meant was, the closure in
the callback handed to us by content might have DOM nodes. We can't
know we're not hanging on to stuff.
> > These are meaty Moz bugs, and it's starting to hurt.
> > I just had to admit to a coworker that his FF ate 200MB cuz of us. I
> > imagine there are many more similarly annoyed.
> I think maybe this embarassing situation with your coworker has
> convinced you that there is some ongoing unwinnable battle with memory
Again, sorry for not being clear. I meant mixing content w/ XUL seems
to have been a bad idea, and we're bumping heads on XUL bugs pretty
often. I'd rather not expose APIs that are subject to breakage due to
bugs not under our control.
> I'd rather have some testing of the current rewrite before throwing it
> away! I don't really think there is a magic bullet here. Yes, the
> current version on the website leaks. We are all painfully aware of
> that. But isn't the question that matters whether the current version
> in CVS leaks? If so, let's fix it. I'm not convinced it will be that
I'll do some testing on it. I'm sure what you've already done is good
stuff. Sorry for overreacting.
More information about the Greasemonkey