+ppi, pliard
A few considerations from an android point of view:
1) Extending Peter's comment, on android we're extensively using the multi-process architecture as a key part of the overall memory management..
That is, all tabs are in the system "oom killer hit list", background tabs gets lower priority, under memory pressure the android framework will kill the renderer and free all the memory associated with it.. if we move such caches outside the renderers, we need to have a good eviction mechanism in place to ensure "dead" cached items will be freed as necessary...
Perhaps a good metric to start with would be how much data is actually duplicated right now across multiple renderers versus how much is specific to a particular renderer? "it'll be faster _and_ use less memory", it'd be really great if we could somehow quantify that :)
2) Having it backed by purgeable memory would be a really great benefit for android! It'd allow the framework to manage some of this... however, we'd have to be careful if we are to have different datatypes with different costs, afaict the purgeable memory doesn't offer many guarantees / levels, so any datatype would be equally purgeable...
Thanks,
Marcus