We can have everything use the freelist strategy, but have the freelists be dynamically resizable. This is because the maximum possible object size can be pre-determined. Also realistically, there won't be more than, say, 2^13(8192) fields in a struct, so we just need to make 13 freelists. When we run out of memory, we can garbage collect easily.
We can have everything use the freelist strategy, but have the freelists be dynamically resizable. This is because the maximum possible object size can be pre-determined. Also realistically, there won't be more than, say, 2^13(8192) fields in a struct, so we just need to make 13 freelists. When we run out of memory, we can garbage collect easily.