On 11/12/2010 12:05 AM, Igor Stasenko wrote:
Both variants having own advantages/disadvantages, while i think, that with good JIT an extra indirection could be almost insignificant.
This ignores the cost of memory access.
I'd like to know, what you thinking about it, and why Squeak VM, in particular, using direct object pointers?
Performance.
What are this choice based on? I'd like to know. Maybe i missing something.
http://ftp.squeak.org/docs/OOPSLA.Squeak.html:
The Object Memory
The design of an object memory that is general and yet compact is not simple. We all agreed immediately on a number of parameters, though. For efficiency and scalability to large projects, we wanted a 32-bit address space with direct pointers (i.e., a system in which an object reference is just the address of that object in memory). The design had to support all object formats of our existing Smalltalk. It must be amenable to incremental garbage collection and compaction. Finally, it must be able to support the "become" operation (exchange identity of two objects) to the degree required in normal Smalltalk system operation. "... etc ..."
(also see the section on storage management)
And if in doubt drop a note to dan ingalls at sap dot com and you'll get the answer straight from the source :-)
Cheers, - Andreas