8 ms·
> A generational reference can include an offset to the parent's generation I see, thanks for the clarification. Then interior pointers will be larger than nor
by azakai 4y ago
> A generational reference can include an offset to the parent's generation
I see, thanks for the clarification. Then interior pointers will be larger than normal pointers, like all generational pointers? While the interior object itself doesn't have a generation, avoiding that overhead. Makes sense I think.
All the larger pointers do make me worry about increased memory overhead, though (kind of the reverse of the x32 ABI which has half-sized pointers; I think 5-8% is the quoted perf difference there). Do you have benchmarks of memory overhead - looks like the link has throughput?
Regardless, it sounds like the other features you mention should help with both forms of overhead, so it will be interesting to see how much.
Cool project btw!
- verdagon 4y agoThanks! The increased memory overhead would seem to be a problem, but in the programs I work on at least (games, web servers, compilers), the vast majority of references in a program are owning references which aren't fat pointers. Non-owning references are very short-lived and on the stack, so the memory overhead shouldn be pretty minor in practice. Also, if we want to save a little more space, we can reduce the generations to 32 bits (we're leaning this way in fact, as it opens the door to some interesting other features).