Description
Currently, we use a single creek to back all allocations that are not mmap'd directly. However, if we used multiple creeks, we could use creek membership as a proxy for membership information. This would allow us to, given a pointer, figure out what creek it came from, and thus to know something about its identity.
For example, if we had a different creek for each size class, then we could save a page on each large page allocation. Currently, for large objects, we mmap directly, but we have to mmap an extra page in order to store metadata so that, given a pointer, we can back up a page and use this stored metadata to figure out the size of the object. This would allow us to instead have a creek for power-of-two sized size classes. This would usually be more wasteful of virtual memory than the metadata-in-a-page approach, but it would be less wasteful of physical memory because only the pages needed for the object would actually be dirtied.