On 02/14/2011 11:51 AM, Gwenaël Casaccio wrote:
 4) Now here comes the problem:
 =======================

 SmallInteger [
   foo: anInteger time: aTimeInteger [
     anInteger>  0 ifTrue: [
       ^ self  foo: anInteger - 1 time: aTimeInteger
     ].

     ObjectMemory quit.
   ]
 ]

You're calling this with anInteger = 90000, and in this case I do expect GC to be responsible for bad performance.

However, the numbers should be very different for, say, a depth of 50 like in your microbenchmark

  (Time millisecondsToRun: [ 1000000 timesRepeat: [
     5 recursionWithReturn: 50 ] ]) printNl.

How do gst/cog/squeak compare in this case?

Also, your benchmarks are missing one very important case, namely array access. I believe this is the cause of the slowdown in the bytecode benchmark, especially since you proved that everything else is faster. :) This cannot be helped really, because it's due to the object table.

Paolo

_______________________________________________
help-smalltalk mailing list
help-smalltalk@gnu.org
http://lists.gnu.org/mailman/listinfo/help-smalltalk

Reply via email to