B2G continues to be a major focus of work relating to memory consumption. Even the non-B2G-specific improvements made this fortnight were mostly identified and made to help B2G.
Gabriele Svelto caused dirty freed pages held onto by jemalloc to be purged when a B2G process experiences memory pressure, such as when it goes into the background. This typically reduces a process’ size by about 2 MiB, so it’s a big deal. This was a MemShrink P1 bug.
Benoit Jacob prevented the creation of redundant OpenGL contexts on B2G. This saves 750 KiB in the main B2G process, and 750 KiB in every child that uses WebGL. Benoit was able to do this based on data from a B2G-specific heap profiler written by Justin Lebar.
I made a large IPC message buffer shrink once all messages from it have been processed. This saves either 120 KiB or 248 KiB per child process.
James Lal greatly reduced memory consumption of the ical parser during sync. This change also made it much faster.
Justin Lebar and I added a memory reporter for Freetype, which uses about 2 MiB of memory in the main B2G process. (This reporter also works on Fennec.)
Andrea Marchesini added a memory reporter for B2G’s gralloc memory.
I increased the size of the chunks used by XPT info’s arena allocator, which saves about 80 KiB per process on 32-bit, and a bit more on 64-bit.
Randell Jesup fixed a PeerConnection leak in WebRTC code.
Here are the current bug counts.
- P1: 17 (-4/+1)
- P2: 114 (-5/+9)
- P3: 103 (-4/+5)
- Unprioritized: 2 (-3/+1)