performance (was: resend)

Jecel Assumpcao Jr jecel at
Fri Nov 11 17:43:14 UTC 2005

Emir Uner wrote on Fri, 11 Nov 2005 14:30:59 -0000

> As it is currently discussed I want to ask a question about
> the performance of Self VM. While I haven't done benchmarks,
> when I've run the Self VM (4.2.1) in Mac the user interface
> seemed to appear rather slow. The question is does just
> the user interface is slow or the Self VM is slow
> (for general application programming, not just scripting)
> despite the great efforts for optimization.

Running Self on a 277MHz Sun Ultra 5 machine feels more responsive than
on a 1GHz eMac even though all other applications run far faster on this
second machine. You can have an idea of this effect comparing Self and
Squeak benchmarks in

While far better than the Linux port, I don't think the Mac version of
Self gives people the proper impression of the potential performance.
But you are right that it would be a good idea to run benchmarks to see
if it is a GUI only problem or if there is a general difference in
performance. I will do so tomorrow and add the results to the page I
mentioned above.

> Is current 
> Self VM represents the final point in optimizations
> for a prototype based dynamic language or there is
> still room for substantial performance improvements.

If this is related to the implementation discussion on the Io list you
should be aware that "prototype language" means rather different things
in Io and Self. It would be best if we had two separate names for them
but I don't think that will happen. That said, the technology created
for Self can apply to other languages and it can also be improved on.
That, however, would not be a trivial project and nobody seems to be
investing in this direction currently.

The best way to research this is to step back and try to see the general
mechanisms of which the various Self tricks are particular examples of.
Like where Self uses customization and code splitting you might want to
consider them from a partial evaluation viewpoint. Once you do that you
begin to see other places where partial evaluation could be applied. The
first step would probably be to extend the bad of tricks but eventually
you might discover a more general framework that replaces all that. See
the change from type inference (Self 1 and 2) to type feedback (Self 3
and 4) for an example of what I am talking about.

> PS: I apologize if this mail comes twice because the first time
> I tried it failed.

The first time you sent to self-interest-owner and only the list
moderator (me) got it. Note to people sending their first messages to
the list - every new member is initially moderated even though the list
in general isn't. When I see your first email and I aprove it (which
might take a while) I also change your settings so your following emails
won't have any delays. This allows me to filter out the spam, either
well intentioned (announcing Java events, for example) or not.

-- Jecel

More information about the Self-interest mailing list