Hi , all
RoarVM using object tables, while Squeak VM using direct pointers for object.
This is a basic element of VM design, and i wonder, how much impact it does on overall VM speed.
Both variants having own advantages/disadvantages, while i think, that with good JIT an extra indirection could be almost insignificant. But having indirect pointers to objects opens quite sexy perspectives. Being able to freely choose object(s) location means that: - its quite easy to implement object memory paging (swapping between memory and disc), - place particular object(s) into special memory location (good for FFI, object pinning etc) - #become: is O(1), instead of O(heap size)
The downside of indirect pointers is, of course, a higher memory traffic, which directly impacts all operations everywhere.
What else? I'd like to know, what you thinking about it, and why Squeak VM, in particular, using direct object pointers? What are this choice based on? I'd like to know. Maybe i missing something.