Closed
Bug 751561
Opened 13 years ago
Closed 13 years ago
Call forgetSkippable twice before CC
Categories
(Core :: DOM: Core & HTML, defect)
Tracking
()
RESOLVED
FIXED
People
(Reporter: smaug, Assigned: smaug)
References
Details
Attachments
(1 file)
|
5.87 KB,
patch
|
mccr8
:
review+
|
Details | Diff | Splinter Review |
Bug 747675 changed how we handle forgetSkippable.
Now tools, like about:cc, report more stuff in the CC because not all the cleaning up
is happening.
Patch coming.
| Assignee | ||
Comment 1•13 years ago
|
||
Attachment #620694 -
Flags: review?(continuation)
Comment 2•13 years ago
|
||
Comment on attachment 620694 [details] [diff] [review]
patch
Review of attachment 620694 [details] [diff] [review]:
-----------------------------------------------------------------
::: dom/base/nsJSEnvironment.cpp
@@ +185,5 @@
> static PRUint32 sRemovedPurples = 0;
> static PRUint32 sForgetSkippableBeforeCC = 0;
> static PRUint32 sPreviousSuspectedCount = 0;
>
> +static PRUint32 sCleanupsSinceLastGC = PR_UINT32_MAX;
Why do you init this to MAX instead of 0 like below? I guess the init function is always called so it shouldn't really matter?
@@ +2961,3 @@
> for (PRInt32 i = 0; i < aExtraForgetSkippableCalls; ++i) {
> nsCycleCollector_forgetSkippable();
> + ++sCleanupsSinceLastGC;
Maybe put this loop before the other loop? Right now, if you ask for 2 extra forget skippables, but you haven't done any cleanups, you'll end up doing 4 before. But maybe it doesn't matter...
Attachment #620694 -
Flags: review?(continuation) → review+
| Assignee | ||
Comment 3•13 years ago
|
||
(In reply to Andrew McCreight [:mccr8] from comment #2)
> > +static PRUint32 sCleanupsSinceLastGC = PR_UINT32_MAX;
>
> Why do you init this to MAX instead of 0 like below?
Where below? It is set to 0 when GC has run
> > for (PRInt32 i = 0; i < aExtraForgetSkippableCalls; ++i) {
> > nsCycleCollector_forgetSkippable();
> > + ++sCleanupsSinceLastGC;
>
> Maybe put this loop before the other loop? Right now, if you ask for 2
> extra forget skippables, but you haven't done any cleanups, you'll end up
> doing 4 before.
I want to have those 4 forgetSkippables.
aExtraForgetSkippableCalls are for testing, and they are really extras
Comment 4•13 years ago
|
||
(In reply to Olli Pettay [:smaug] from comment #3)
> > Why do you init this to MAX instead of 0 like below?
> Where below? It is set to 0 when GC has run
Oh, I misread. Shouldn't you init the value in the init method in nsJSEnvironment? To MAX I guess.
> I want to have those 4 forgetSkippables.
> aExtraForgetSkippableCalls are for testing, and they are really extras
Sounds good to me.
| Assignee | ||
Comment 5•13 years ago
|
||
(In reply to Andrew McCreight [:mccr8] from comment #4)
> Oh, I misread. Shouldn't you init the value in the init method in
> nsJSEnvironment?
Not sure why. And I'm not changing the initialization place here.
| Assignee | ||
Comment 6•13 years ago
|
||
Status: NEW → RESOLVED
Closed: 13 years ago
Resolution: --- → FIXED
Comment 7•13 years ago
|
||
There was a big decrease in the number of ghost windows seen from the 5/3/12 to the 5/4/12 nightly (807403a04 -- 2db9df428). Looking at the affected csets, this is the only patch which I can imagine affecting that measure.
If this is indeed responsible for the change, it's an awesome patch.
No longer blocks: 747675
Comment 8•13 years ago
|
||
That would be surprising, as this patch should only affect manually-triggered CCs. But maybe it fixes a bug we didn't know we had. ;)
Updated•6 years ago
|
Component: DOM → DOM: Core & HTML
You need to log in
before you can comment on or make changes to this bug.
Description
•