[Vm-dev] Direct object pointers vs indirect ones pros and cons

ungar at mac.com ungar at mac.com
Wed Nov 17 04:53:34 UTC 2010


Back in 1981 or -2 I built the first Smalltalk system WITHOUT an object table.
It used 32-bit direct pointers and Generation Scavenging (which I "invented").
First Smalltalk VM with direct pointers, first with generational GC, first with 32-bit OOPS.
It was called "Berkeley Smalltalk" or BS.
Peter (Deutsch) bet me a dinner about how much eliminating the OT would speed things up, and
when I surpassed Peter's estimate (I think it was 1.4), I collected one of the best dinners I have ever had.
Soon after, PS (Deustch & Schiffman) ran rings around BS, but that's another story.

- David

On Nov 12, 2010, at 2:56 AM, Igor Stasenko wrote:

> On 12 November 2010 11:59, Stefan Marr <squeak at stefan-marr.de> wrote:
>> Hi Igor:
>> On 12 Nov 2010, at 10:32, Igor Stasenko wrote:
>>> I would like to hear your opinion on that in context: what if you
>>> would design a VM from scratch,
>>> and having a direct access to high-optimization compiler/jit. What
>>> would be your choice?
>> I don't think you will get a satisfying answer to that question.
>> It might be that on certain processors the caches are big enough to actually hide the overhead of an object table in such a scenario.
>> But, by definition, caches are always to small.
>> I think we have still the source code of David's version of the RoarVM lying around that does not use an object table. With 'a bit of work' it would be possible to measure that overhead for our interpreter for a single core. So, if you feel like it, I could give you a hand here and there ;)
> well, if that's not too much work to run a simple benchmarks :)
>> Best regards
>> Stefan
>> --
>> Stefan Marr
>> Software Languages Lab
>> Vrije Universiteit Brussel
>> Pleinlaan 2 / B-1050 Brussels / Belgium
>> http://soft.vub.ac.be/~smarr
>> Phone: +32 2 629 2974
>> Fax:   +32 2 629 3525
> -- 
> Best regards,
> Igor Stasenko AKA sig.

More information about the Vm-dev mailing list