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