global variables as structure in VM.

John M McIntosh johnmci at
Fri Apr 5 23:31:44 UTC 2002

>These performance figures are quite interesting. I think it's possible
>that this change would also improve performance on register-poor machines
>such as the 68K, which never ran Squeak as fast as it should have
>(based on the relative performance of a set of C benchmarks).
>What does this change do for performance under OS 9? How about
>Windows and *nix? I'm wondering if this could be made an option
>at VM generation time to allow folks to do some experiments on other

There is no benefit under os-9 or 68k bsd for moving to a global structure.
I'm 98% sure globals are addressed based on pc+displacement. So 
actually the setup to get to the point of structure start + offset is 
higher that the current code.

This is a different story under ppc because of how code and data 
segments are addressed at runtime.

Alas the GCC 68K compiler is *way* more efficient than CW, but we 
can't get there from here. Other than installing some flavor of 
Bsd/Aux/BSD on your 68K machine if you want a dedicated 68k squeak 
machine. That of course might be a viable choice if you want to run 
squeak as efficiently as possible on that type of hardware. A long 
time back I mentioned squeak under os8.1
did 859,845 + 40,106. but under linux 2.0.38 it
did 1,219,512 + 58,368.

John M. McIntosh <johnmci at> 1-800-477-2659
Corporate Smalltalk Consulting Ltd.

More information about the Squeak-dev mailing list