[ANN] New Version of VI4 (block closures)

Anthony Hannan ajh18 at cornell.edu
Wed Oct 23 20:24:05 UTC 2002


"Andrew C. Greenberg" <werdna at mucow.com> wrote:
> Can anyone account for this remarkable increase in speed?  I would 
> think that the incorporation of block closures would tend to slow, 
> rather than increase the speed of the interpreter.  Is something 
> missing or counted differently, or should we immediately dump the 
> present VM for a way more efficient machine?

The increase in speed is due to getting rid of context objects in favor
of a stack, and getting rid of the frame pointer and having all stack
accesses be referenced from the stack pointer which is in a register. 
See the aboutVI4 method comment or the description at
http://minnow.cc.gatech.edu/squeak/VI4 for more details.

"Stephen Pair" <spair at acm.org> wrote:
> I just downloaded VI4 and tried the CCodeGenerator benchmark below
> (on a 1ghz PIII laptop):
> Smalltalk garbageCollect.
> [((CCodeGenerator new initialize
> 	addClass: Interpreter;
> 	prepareMethods;
> 	doInlining: true)
> 		cCodeForMethod: #interpret)] timeToRun
> Normal vm: 23,230 ms
> VI4 vm: 12,339 ms
> Fantastic!

DId you run the Normal vm with the VI4 Interpreter code loaded, so your
comparing the same thing.  I did and got (on my old Pentium II):
Normal vm: 45965 ms
VI4 vm: 31404 ms

> Will you be at OOPSLA?  I'm planning to demo my persistence VM at
> OOPSLA and would like to re-implement it on top of VI4 (I may gain
> back some of the performance I lost ;) ).  It would be nice to sit down
> with you to get an idea how much work that would entail.

Unfortunately, I won't be at Oopsla.  We will have to discuss things
over email (or chat).  Do you have a description of your work posted
anywhere?

Cheers,
Anthony



More information about the Squeak-dev mailing list