Closed
Bug 650326
Opened 14 years ago
Closed 14 years ago
Optimize ExpireGCChunks
Categories
(Core :: JavaScript Engine, defect)
Tracking
()
RESOLVED
FIXED
People
(Reporter: gwagner, Assigned: gwagner)
Details
(Whiteboard: fixed-in-tracemonkey)
Attachments
(1 file, 2 obsolete files)
1.62 KB,
patch
|
igor
:
review+
|
Details | Diff | Splinter Review |
I was looking at the cornell box benchmark.
The average GC pause time decreased from about 200-500ms to 30-70ms because of the background finalization. There are still a few spikes in there with 200ms pauses caused by releasing the chunks.
Maybe we want to move the chunk returning to the background thread as well.
URL: http://29a.ch/sandbox/2010/cornellbox/
Assignee | ||
Comment 1•14 years ago
|
||
Moving ExpireGCChunks to the background thread.
Assignee: general → anygregor
Assignee | ||
Updated•14 years ago
|
Attachment #531993 -
Flags: review?(igor)
Assignee | ||
Comment 2•14 years ago
|
||
Oh we need a special case for last context GC.
Attachment #531993 -
Attachment is obsolete: true
Attachment #531993 -
Flags: review?(igor)
Comment 3•14 years ago
|
||
Comment on attachment 532009 [details] [diff] [review]
patch
Review of attachment 532009 [details] [diff] [review]:
-----------------------------------------------------------------
::: js/src/jsgc.cpp
@@ +2666,5 @@
> JS_ASSERT(cx->gcBackgroundFree == &rt->gcHelperThread);
> cx->gcBackgroundFree = NULL;
> rt->gcHelperThread.startBackgroundSweep(rt);
> } else {
> + ExpireGCChunks(rt);
js_FinishGC destroys the chunks on its own. So we do not need to do anything special here except perhaps a comment about js_FinishGC. r+ with that fixed.
Assignee | ||
Comment 4•14 years ago
|
||
(In reply to comment #3)
> Comment on attachment 532009 [details] [diff] [review] [review]
> patch
>
> Review of attachment 532009 [details] [diff] [review] [review]:
> -----------------------------------------------------------------
>
> ::: js/src/jsgc.cpp
> @@ +2666,5 @@
> > JS_ASSERT(cx->gcBackgroundFree == &rt->gcHelperThread);
> > cx->gcBackgroundFree = NULL;
> > rt->gcHelperThread.startBackgroundSweep(rt);
> > } else {
> > + ExpireGCChunks(rt);
>
> js_FinishGC destroys the chunks on its own. So we do not need to do anything
> special here except perhaps a comment about js_FinishGC. r+ with that fixed.
Oh yes that's right. Back to the original patch. Thx!
Assignee | ||
Comment 5•14 years ago
|
||
Attachment #532009 -
Attachment is obsolete: true
Attachment #532018 -
Flags: review?(igor)
Comment 6•14 years ago
|
||
Comment on attachment 532018 [details] [diff] [review]
patch
Review of attachment 532018 [details] [diff] [review]:
-----------------------------------------------------------------
Attachment #532018 -
Flags: review?(igor) → review+
Assignee | ||
Comment 7•14 years ago
|
||
Whiteboard: fixed-in-tracemonkey
Comment 8•14 years ago
|
||
Status: NEW → RESOLVED
Closed: 14 years ago
Resolution: --- → FIXED
You need to log in
before you can comment on or make changes to this bug.
Description
•