In VW there is the concept of object bodies and head now we will eventually 
have that with Spur. Maybe clement explained it somewhere in his blog (I 
understood the point once and of course I forgot).

Now I wonder what changed so much between 1.2 and 3.0

> 
>> Yes, #become: is *very* slow in Pharo. No problem at all in VisualWorks or 
>> Dolphin Smalltalk or Pharo 1.2, though! 
>> 
>> Time millisecondsToRun: [1000 timesRepeat: [String new become: String new ]] 
>> 
>> Pharo 3.0 (and also in 2.0 and 1.4):
>> 3948 3495 2891 2532 3162
>> 
>> Pharo 1.2 with the Squeak 4.2.5beta1U VM:
>> 90 89 82 90 72
>> 
>> VisualWorks 7.9.1: note that this is measured in microseconds: 
>> Time microsecondsToRun: [1000 timesRepeat: [String new become: String new ]] 
>> 211 208 222 212 208
> 
> Yes, this is an extreme difference.
> 
> On my machine, the above takes between 1 and 2 seconds in Pharo 3 (Pharo VM) 
> and Squeak 4.5 (Cog VM), while VW 7.1 takes just 100 to 200 microseconds.
> 
> Normally, #become: has to iterate over all memory, but this benchmark is a 
> bit special, since it involves two new objects, maybe VW's memory manager 
> somehow optimises this away.
> 
> Sven


Reply via email to