MC in basic

Michael Latta lattam at mac.com
Tue Dec 14 17:14:32 UTC 2004


On Dec 14, 2004, at 7:13 AM, stéphane ducasse wrote:

>>> What exactly is 'slower'? Compiling, or compiled code? The former, 
>>> is less
>>> of an issue unless doing image reworks. (Installing veiny packages, 
>>> for
>>> example)
>>
>> Its actually much bigger than that, although that's probably a big 
>> enough
>> issue by itself.
>>
>> If you change (add and/or remove) an instance variable in a class, it
>> recompiles all the methods in that class and all the subclasses. For
>> complex class hierarchies, that can take a long time even with the 
>> fast
>> compiler. I can't imagine this taking 3x longer...
>
> But with the possibility that I explained (late binding of method 
> compilation)
> then you will only compile the methods when you call them and only 
> once at that time.
>
> Stef

That kind of unpredictable delay caused by dynamic compilation needs to 
be treated very carefully.  In particular when working with multi-media 
applications.  There would need to be a way to tell the system to go 
compile everything that needs it, or you need to be able to guarantee 
that he compilation can be done with uniform delay.  The JITs can 
always fall back on interpreting to get uniformity, but in this case we 
are talking about source to binary.  I think this is VERY dangerous for 
any end-user experience of the system.  It is tolerable for developers, 
but not end-users.  We have something similar in my day-job and it 
produces no end of complaints for delays at unexpected places.  It 
makes the whole system feel slow, rather than the slowdown happening 
when you can take a coffee break.

Michael




More information about the Squeak-dev mailing list