[whatwg] Low Memory Event

Roger Hågensen rescator at emsai.net
Sat Jan 1 18:52:54 PST 2011

On 2011-01-02 03:27, Kornel Lesiński wrote:
> On Sun, 02 Jan 2011 00:53:48 -0000, Charles Pritchard 
> <chuck at jumis.com> wrote:
>> ArrayBuffer and Canvas use contiguous memory segments. You don't need 
>> a complex GC pass to let those ones go.
>> For my use cases, those are the two types I'm working with.
>> Keeping them around helps the speed of my app, letting them go
>> cuts down on memory usage.
> Maybe better solution would be to add "purgeable" flag to canvas (i.e. 
> allow browser to clear canvas at any time) or some way to create/mark 
> weak references? (i.e. a reference to object that can be changed to 
> null if browser is in low-memory situation).
> Although, I'm not convinced that handling of low memory in JS is 
> necessary. Browsers already have some ways to free memory, e.g. by 
> freeing all bitmaps for <img> or simply by unloading whole pages.
> Amount of available memory, even on mobile devices, increases 
> dramatically each year. It's possible that by the time this feature 
> gets specified, implemented, released and installed on significant 
> number of devices it will be irrelevant. On my desktop computer I 
> often have 100 tabs open and memory is not an issue, and my mobile 
> phone has 1/16th of that RAM already.

I think this is starting to get off topic, as we're now into OS memory 
allocation territory.
If the browser is told by the OS or the browser "feels" it need to 
conserve memory it can do whatever it pleases, OS stability trumphs web 
page/app/script/whatever, and should always do so.

Charles, you initially said you where worried about this since you used 
undo buffers.
Why not simply add undo buffers to the Canvas spec? That way the browser 
can start tossing away the oldest undo buffers automatically when it 
starts getting memory anorexic.
And depending on the browser implementation and the OS and hardware 
support, on some systems the Canvas undo buffers could even be in 
graphics memory.
It's wrong for Canvas to have undo stuff in active memory, most graphics 
programs store the undo on disk or it's paged out to a swapfile at the 
So if you have to make your own undo buffers for Canvas, then I'd say 
that Canvas is lacking and might need undo buffers as part of it's spec.

Roger "Rescator" Hågensen.
Freelancer - http://www.EmSai.net/

More information about the whatwg mailing list