On 5 April 2011 11:33, Mariano Martinez Peck <marianopeck@gmail.com> wrote:
So....I tried with running all tests of a PharoCore 1.3 and I've got this:
cog vm with optimization Time to run all tests:116506
cog vm without optimization Time to run all tests:121930
121930 - 116506 ----> 5424 ((5424 * 100) / 116506) asFloat ---> 4.655554220383499
So...in Cog, running all test, there is an overhead of 4.6%
Do we want to pay it ?
I would...but I am all ears.
5% for #class message? this is too much. or you also removed other optimized sends?
Cheers
Mariano
On Mon, Mar 28, 2011 at 11:08 AM, Camillo Bruni <camillo.bruni@inria.fr> wrote:
I don't care. I have it working for my "usage". This was just an example.
And don't compare #class with all the boolean methods like #ifNil:  and friends  or the bytecodes for integer operations....I think #class is sent far less times than those...
Yes. and i predict that performance impact in macro benchmarks, where you running normal code (which not sending this message intentionally in a loop) will be at the noise level magnitude.
So...what about doing something more real...for example, run all the testcases and compare time. Wouldn't that be a good "benchmark" ?
sounds already better. make sure to run it something like 100 times, get the average and the standard deviation. otherwise the results don't provide much information.
BTW, can I run all test from code? (not using the TestRunner UI)
something like the following code should do it.
TestCase allSubclasses do: [ :cls|     cls isAbstract         ifFalse: [cls run]].
-- Mariano http://marianopeck.wordpress.com
-- Best regards, Igor Stasenko AKA sig.