Closed Bug 612423 Opened 14 years ago Closed 6 months ago

Don't mark and sweep defaultCompartment

Categories

(Core :: JavaScript Engine, defect)

x86
macOS
defect

Tracking

()

RESOLVED INACTIVE

People

(Reporter: gwagner, Unassigned)

Details

Since all atoms are in the defaultCompartment and no other objects are in there we can avoid marking the atoms and sweeping the defaultCompartment.
I measured about 2% gc pause time reduction in the browser.
(In reply to comment #0)
> Since all atoms are in the defaultCompartment and no other objects are in there
> we can avoid marking the atoms and sweeping the defaultCompartment.

Hm, but how do you collect the atoms? I.e. how would OOM be prevented in a test case like:

var obj  = {};
for (var i = 0; i != 1e9; ++i)
    delete obj["a"+i];

Here 1e9 temporary atoms are allocated and nothing else.
Sure we need a mechanism to avoid oom due to atoms creation.
My observation is that atoms normally don't show a high throughput rate and we don't need to mark and sweep them for each single GC run.

My idea is to come back to this bug once we can GC single compartments and see if we can optimize for atoms.
(In reply to Gregor Wagner [:gwagner] from comment #2)
> My idea is to come back to this bug once we can GC single compartments and
> see if we can optimize for atoms.
I think we are able to do this today.
Assignee: general → nobody
Severity: normal → S3
Status: NEW → RESOLVED
Closed: 6 months ago
Resolution: --- → INACTIVE
You need to log in before you can comment on or make changes to this bug.