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. 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