[self-interest] Re: speed

Jecel Assumpcao Jr. jecel at merlintec.com
Fri Dec 17 22:03:10 UTC 1999

Steve Dekorte wrote:
> I got a chance to run Self on a G3 with 128M.
> It was cool to see it running on a Mac, but it was very slow.
> Is this because it's an early version or did my machine not have 
> enough memory or something?

Self includes two compilers:

  - NIC, the Non Inlining Compiler, is very fast but generates very poor code
that doesn't run much faster than an interpreter would. All methods are
initially compiled with it

  - SIC, the Simple Inlining Compiler, is not as fast as NIC but it generates
very good code. Instead of doing extensive type analysis like the compiler in
Self 1.0 and 2.0 did, it uses type information generated by actually running
the code created by the NIC for a while. So the SIC is used to recompile
methods that are determined to be critical to overall performance (the "hot
spots" of the application, hence the name of the HotSpot technology in Java 2.0)

Well, this is how things work on the Sparc. For the PowerPC port, David Ungar
only converted the NIC, so the lack of performance you are seeing is to be
expected. The Linux Intel port that Gordon Cichon started to write also only
included the NIC ("simple" is such a relative term ;-)

In short: the NIC is enough to get Self running on a machine, but the SIC is
needed to make it fast.

-- Jecel

More information about the Self-interest mailing list