treilly at adobe.com
Wed Jan 9 10:46:57 PST 2008
TT is being designed to work well in the 128kb to 1mb embedded range but not at the expense of running well on desktop/server environments. Some flex apps take hundreds of mb on their own and TT will need to handle those cases well. I would hazard a guess that flash and mozilla's memory usage profiles aren't too remarkably different and that we don't need to worry too much about anybody falling into any painful worlds.
> IMHO optimizing for an allocator that works best with large heaps made up
> of lots of small objects would be the best strategy here.
Good to know, what's large and small mean here? I'd love to get some data on what Mozilla's memory usage looks like. I could probably help someone who understood moz's code base get some nice data in a hour or two using dtrace. Maybe we can do that during one of our upcoming get togethers (when's a good time for that by the way? Sounds like the Tamarin summit on Feb 1 isn't a good time for that?).
There are techniques for making an allocator efficiently handle 1,2,4 byte allocations but we don't employ them because we don't have allocations that small. This is what I meant by specializing the mutator/allocator to each other.
From: Stuart Parmenter [mailto:pavlov at pavlov.net]
Sent: Wed 1/9/2008 10:28 AM
To: Thomas Reilly
Cc: Zbynek Winkler; Benjamin Smedberg; tamarin-devel at mozilla.org
Subject: Re: space management
Thomas Reilly wrote:
> Fascinating stuff but we don't spend too much time worry about virtual memory paging. Our use cases trend towards tiny heaps that almost always fit inside resident memory. Although TC in the flash player has on the rare occasion run into virtual memory problems b/c of the JIT architecture and that's part of the reason TT exists.
Our use cases don't trend towards tiny heaps at all. In fact, they have
a tendency over time to get quite large. IMHO optimizing for an
allocator that works best with large heaps made up of lots of small
objects would be the best strategy here. It should also work well with
small heaps but if you're just targeting small ones, Mozilla is going to
be in for a world of hurt.
More information about the Tamarin-devel