On 05 Apr 2014, at 23:35, Joachim Geidel <[email protected]> wrote:
> 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
