Closed Bug 1548182 Opened 5 years ago Closed 5 years ago

Try reducing zoneAllocDelayBytes

Categories

(Core :: JavaScript: GC, enhancement, P2)

enhancement

Tracking

()

RESOLVED INVALID
Performance Impact ?

People

(Reporter: pbone, Assigned: pbone)

References

(Blocks 1 open bug)

Details

(Whiteboard: [MemShrink?])

This parameter controls how much the mutator may allocate between iGC slices. I have some promising results from reducing it on try:

https://treeherder.mozilla.org/perf.html#/compare?originalProject=mozilla-central&newProject=try&newRevision=f32244e8ff2b7de4a46843f0f9653a9463afc769&framework=1&selectedTimeRange=172800 (using 256KB rather than 1MB).

It improves performance and reduces memory usage.

I tried this as a way to try to work-around Bug 1518138 but it may be useful in its own right.

Assignee: nobody → pbone
Status: NEW → ASSIGNED
Type: defect → enhancement
Priority: -- → P2
Blocks: GCScheduling

I chatted with jonco about the performance results for this bug. He pointed out that in the browser an idle task runner takes care of collecting the nursery in the browser. The zoneAllocDelayBytes() parameter mostly has an affect only for long running JS tasks, or tasks that perform a lot of allocation. This is why we see some of the benchmarks improve, because they have long-running JS tasks. However the ones that regress such as scroll and scrollx are responsiveness tests, by running the GC in response to ZoneAllocDelayBytes() we're taking this task away from the idle timer, making the browser less responsive.

it may still reduce some of the OOMs in Bug 1518138 since they're ocuring when running tests, but maybe not worth it if it affects responsiveness.

Status: ASSIGNED → RESOLVED
Closed: 5 years ago
Resolution: --- → INVALID
Performance Impact: --- → ?
Whiteboard: [MemShrink?][qf?] → [MemShrink?]
You need to log in before you can comment on or make changes to this bug.