On 10/1/22 12:57 AM, tsbockman wrote:
On Saturday, 1 October 2022 at 01:37:00 UTC, Steven Schveighoffer wrote:
The list of bit sizes is currently here:
I'm pretty sure those are in **bytes** not **bits**.
Yes, I meant bytes, sorry.
That's not a list of alignments, it is block sizes for some GC memory
pools. The alignment of each block depends on the alignment of its pool,
not just its size.
Pools are all page multiples. Each pool is split equally into bin sizes,
from that list.
Regardless, it's not part of the public API, so it could change without
warning.
Hence the "in practice" qualifier. Is it theoretically possible for a GC
implementation to use smaller bin sizes, but it will never happen.
Consider that in small bins ( < 1 page ), no two bins are concatenated
together. So if you had a bin of size 1, it means you would only
allocate *one byte blocks*, never combining them.
Again, these are all implementation details, that likely will never change.
-Steve