[Pharo-project] Remove #class as a Compiler optimization

Mariano Martinez Peck marianopeck at gmail.com
Tue Apr 5 11:33:34 CEST 2011


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 at 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
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.gforge.inria.fr/pipermail/pharo-project/attachments/20110405/0c26f7ad/attachment.htm>


More information about the Pharo-project mailing list