Self Size

Urs Hoelzle Urs.Hoelzle at Eng.Sun.COM
Fri Aug 21 23:55:29 UTC 1992

Richard> Why does Self require so much memory?

1.  Because we trade space for speed in certain places ("memory is
2.  Because we have not optimized things for space.  I.e. we know
    how to reduce the size of the code space and the object heap
    by around a factor of two, but we just haven't gotten around to
    implementing this space engineering.  

Richard> The Self UI runs somewhat slowly.  The performance benchmarks
Richard> quoted in the various Self documents would make me think the
Richard> UI would be quite snappy.

Richard> Why isn't it?

1.  Because the compiler(s) are sometimes slow (that's why things run
    slower the first time you do them).
2.  Because the compilers aren't perfect (yet :-).  Note that we do
    not claim that *all* Self programs are x% of C - just the
    benchmarks.  Also, the default system does *not* use the optimizing
    compiler for all compilations.  Rather, it compiles unoptimized
    code first (to reduce compile pauses) and reoptimizes later when
    it sees that some code is frequently used.  Unfortunately, the
    system doesn't always recompile the right thing, so the resulting
    code may be slower than if it had been compiled in optimizing mode
    the first time.

Richard> I am a fan of Scheme and its functional syntax.  Could a
Richard> functional "front end" be written for Self?  Not necessarily
Richard> Scheme compatible, just "lisp-ish".

I guess it could...just try it!  :-)


PS: We're actively working on both the space and the speed problems!

More information about the Self-interest mailing list