dysfun@treehouse.systems ("gaytabase") wrote:
so earlier, when i was musing about size classes, i overlooked something important: there is no fragmentation with size classes beyond padding things to the next size up if they are smaller. well there needn't be if you're already tracing, anyway.
this also means the only reason to evacuate would be to merge partially filled blocks of the same size class.
the downside is that each thread needs at least one block of each size class that it's allocating into. but again, this is comparable to ordinary allocators. so one partially filled block of one of each size class that's been encountered. that's kind of an annoying constant overhead.
now why haven't i heard of anyone doing this before?