Open Bug 1506986 Opened 6 years ago Updated 4 months ago

Measure graphics shared memory contributions to per-content-process memory usage

Categories

(Toolkit :: about:memory, enhancement)

enhancement

Tracking

()

People

(Reporter: jld, Unassigned)

References

Details

Currently we're using the resident-unique memory reporter to estimate how much memory usage is increased by an additional content process, because this omits shared memory which we assume to be common to all processes (either anonymous memory like dom::ipc::SharedMap or read-only file mappings like libxul's text section). However, graphics also uses writeable shared memory, shared between one content process and the process hosting the compositor, and that's also omitted by resident-unique even though it's effectively owned by the content process. The amount seems to depend a lot on usage — Google Docs used 3.5 MB when I measured it, but a page that used normal markup (instead of a big canvas) was much less. However, point-in-time measurements like this might underestimate peak usage. (Note that there's also work to move certain types of rendering out of the content process; see bug 1477756 for WebGL and bug 1464032 for Windows 2D. At least for the WebGL remoting we'll use shared memory as a command buffer, but we won't be shipping around rendered frames if I understand correctly.) We could try to scrape this out of the OS's memory mapping info, assuming that memory that's PROT_WRITE and MAP_SHARED (or equivalent) belongs to the content process, or hook into our shared memory code (but see bug 1455106).
Severity: normal → S3
You need to log in before you can comment on or make changes to this bug.