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

Mariano Martinez Peck marianopeck at gmail.com
Tue Apr 5 12:32:02 CEST 2011


On Tue, Apr 5, 2011 at 12:09 PM, Igor Stasenko <siguctua at gmail.com> wrote:

> On 5 April 2011 11:33, Mariano Martinez Peck <marianopeck at 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?
>
>
Only that one. For #== I got 4.3. And doing both together (#class and #==) I
got 9.05% :(

And removing the #class optimization in a Interpreter VM gives me almost as
in cog: 4.7%

maybe I am doing something wrong...



>  > 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
> >
> >
>
>
>
> --
> Best regards,
> Igor Stasenko AKA sig.
>
>


-- 
Mariano
http://marianopeck.wordpress.com
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.gforge.inria.fr/pipermail/pharo-project/attachments/20110405/3f5d455c/attachment.htm>


More information about the Pharo-project mailing list