Description
MMTk currently uses ObjectReference
to represent an object. ObjectReference
is word sized, and have to be word aligned. If a VM uses compressed pointers, they will have to decompress the pointers and supply those to MMTk as ObjectReference
. This means inside MMTk, we always store pointers in its plain form, which can lead to significant memory overhead, compared to using compressed pointers (which is half of the size of plain pointers).
@wks wrote here that we may want to introduce another compressed form of ObjectReference
, which can be used where we care about the memory over head. For example, the object queues. We also need the current ObjectReference
as it is faster to use (no decompression).
This would be a major change to the code base and our API. I think an MEP is needed.