WebKit Bugzilla
New
Browse
Log In
×
Sign in with GitHub
or
Remember my login
Create Account
·
Forgot Password
Forgotten password account recovery
RESOLVED FIXED
34864
Many objects left uncollected after visiting mail.google.com and closing window
https://bugs.webkit.org/show_bug.cgi?id=34864
Summary
Many objects left uncollected after visiting mail.google.com and closing window
Geoffrey Garen
Reported
2010-02-11 15:54:13 PST
Many objects left uncollected after visiting mail.google.com and closing window
Attachments
Patch
(6.55 KB, patch)
2010-02-11 15:54 PST
,
Geoffrey Garen
ggaren
: review+
Details
Formatted Diff
Diff
Patch
(3.16 KB, patch)
2010-02-11 20:36 PST
,
Geoffrey Garen
oliver
: review+
Details
Formatted Diff
Diff
View All
Add attachment
proposed patch, testcase, etc.
Geoffrey Garen
Comment 1
2010-02-11 15:54:28 PST
Created
attachment 48594
[details]
Patch
Geoffrey Garen
Comment 2
2010-02-11 18:51:47 PST
Committed
r54696
: <
http://trac.webkit.org/changeset/54696
>
Geoffrey Garen
Comment 3
2010-02-11 20:36:12 PST
Created
attachment 48619
[details]
Patch
Geoffrey Garen
Comment 4
2010-02-11 20:38:21 PST
Reopening to post the second half of this fix.
Oliver Hunt
Comment 5
2010-02-11 20:40:49 PST
Comment on
attachment 48619
[details]
Patch r=me
Darin Adler
Comment 6
2010-02-11 20:42:05 PST
Comment on
attachment 48619
[details]
Patch
> + Don't unconditionally hang onto small strings. Instead, hang onto all > + small strings as long as any small string is still referenced.
What is the reasoning for that rule? I'm sure it's a good idea, but I think SmallStrings::markChildren should have a "why" comment in it explaining why it is.
> + if (isMarked(m_singleCharacterStrings[i])) > + isAnyStringMarked = true;
I suggest just doing assignment here instead of an if statement to save a branch.
Geoffrey Garen
Comment 7
2010-02-11 21:01:14 PST
Committed
r54701
: <
http://trac.webkit.org/changeset/54701
>
Geoffrey Garen
Comment 8
2010-02-11 21:02:50 PST
> What is the reasoning for that rule? I'm sure it's a good idea, but I think > SmallStrings::markChildren should have a "why" comment in it explaining why it > is.
Added this comment: /* Our hypothesis is that small strings are very common. So, we cache them to avoid GC churn. However, in cases where this hypothesis turns out to be false -- including the degenerate case where all JavaScript execution has terminated -- we don't want to waste memory. To test our hypothesis, we check if any small string has been marked. If so, it's probably reasonable to mark the rest. If not, we clear the cache. */
> > + if (isMarked(m_singleCharacterStrings[i])) > > + isAnyStringMarked = true; > > I suggest just doing assignment here instead of an if statement to save a > branch.
Fixed.
Note
You need to
log in
before you can comment on or make changes to this bug.
Top of Page
Format For Printing
XML
Clone This Bug