|
From: | Paolo Bonzini |
Subject: | [Help-smalltalk] Re: Benchmarks |
Date: | Mon, 14 Feb 2011 12:04:51 +0100 |
User-agent: | Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.13) Gecko/20101209 Fedora/3.1.7-0.35.b3pre.fc14 Lightning/1.0b3pre Mnenhy/0.8.3 Thunderbird/3.1.7 |
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
[Prev in Thread] | Current Thread | [Next in Thread] |