[whatwg] Low Memory Event

Charles Pritchard chuck at jumis.com
Sat Jan 1 16:44:15 PST 2011

On 1/1/2011 4:07 PM, Glenn Maynard wrote:

>>> For example, responding to being an idle tab by releasing resources is
>>> the wrong thing to do if there's plenty of memory available.  I have 8
>>> GB of memory and Firefox rarely uses more than 512 MB.  Don't make me
>> I stated, in the example, that it would need more logic to function
>> appropriately.
> My point was that the event needs to give enough information to
> *allow* the application's logic to do this correctly.
>> They all have the same related meaning: get rid of unnecessary buffers,
>> serialize and save to disk, if appropriate.
>> If I had a lowmemory event on the desktop, I'd run it through the exact same
>> logic I would on mobile.
> It just seems easy for this to go badly wrong.
> For example, suppose an implementation sends lowmemory when the system
> is low on swap; that is, it's actually running out of virtual memory
> entirely, and allocations are about to start failing or applications
> OOM-killed.  So, I'm in Photoshop using a lot of memory, stuff gets
> swapped out, and then when it's nearly out of memory, Firefox notices
> and broadcasts lowmemory.
> What happens then?  Your application decides to serialize its data and
> write it to disk, like you say.  But your application is already

Serialization mechanisms have to be pretty quick regardless:
otherwise you end up with poor behavior ("freezing gui") onunload.

You're usually moving less than 5 megs of data, when serializing to 
local storage,
as that's what localStorage is limited to in most environments.

Serializing isn't the primary use case: de-referencing unneeded objects 
is the primary reason
for the event. Serializing can help, of course.

More information about the whatwg mailing list