Dino, sorry for the late reply. I have checked that the patch you gave
us made the performance test pass (only one though). I hope it will
get into next release. I don't know how to collect the call stacks you
asked for.

On Dec 17 2008, 7:04 pm, Dino Viehland <[email protected]> wrote:
> Oh, if you also want to get a list of call stacks to PythonContext.Call and 
> send those our way that'd be useful as well.
>
> In general we only want to hit that when the overall cost of whatever we're 
> doing will dwarf any overhead of that one call.  And we certainly have more 
> calls to it then we should :(
>
>
>
> > -----Original Message-----
> > From: [email protected] [mailto:users-
> > [email protected]] On Behalf Of Kamil Dworakowski
> > Sent: Wednesday, December 17, 2008 10:03 AM
> > To: Discussion of IronPython
> > Subject: Re: [IronPython] weird performance issue
>
> > Thanks Dino, it looks like you are right. I print whenever
> > _supportAdding == false.
> > It happens a lot with the snippet executed, whereas it doesn't happen
> > at all with
> > the snippet commented out.
>
> > We also discovered that the slow down only occurs when we compile code
> > to dlls (no _supportAdding == false if runned from sources).
> > Still can't come up with a repro though. If you provide us with a
> > patch, we can
> > test if it solves the problem in our code.
>
> > As a short term solution we have removed all the properties from
> > decorated functions. This fixed one performance test. We moved to
> > other performance tests and we still see that some functions are
> > slower when executed from dlls, so the same slow down might be
> > triggered by sth else.
>
> > On Wed, Dec 17, 2008 at 3:21 AM, Dino Viehland <[email protected]>
> > wrote:
> > > My guess would be that we're pushing the PythonContext._callSplatSite
> > outside of the sweet spot in DLR site caches.
>
> > > You could check this by putting a breakpoint in
> > PythonContext.Call(object, params object[]).  Then look and see if
> > _callSplatSite._rules is an instance of EmptyRuleSet<T> with
> > _supportAdding == false.
>
> > > If this is the cause it should be pretty easy to fix - property's
> > should probably get their own call site object so it'll be specialized
> > to the specific property (maybe we could share a common one of the
> > function is a PythonFunction as these generate highly shareable calls
> > between multiple function instances).  We're also doing a params call
> > today which we could stop doing and get a nice perf boost on
> > properties.
>
> > >> -----Original Message-----
> > >> From: [email protected] [mailto:users-
> > >> [email protected]] On Behalf Of Kamil Dworakowski
> > >> Sent: Tuesday, December 16, 2008 11:08 AM
> > >> To: [email protected]
> > >> Subject: [IronPython] weird performance issue
>
> > >> We see a very strange side effect of running the follwing code on
> > the
> > >> performance of recalculations in Resolver One.
>
> > >> def Dumbcorator(fn):
> > >>     def _inner(self, *args):
> > >>         return fn(self, *args)
> > >>     return _inner
>
> > >> class Locker(object):
> > >>     @property
> > >>     @Dumbcorator
> > >>     def thing(self):
> > >>         return 2
>
> > >> l = Locker()
> > >> l.thing
>
> > >> Specifically, one of the performance test reports results 4 to 8
> > times
> > >> worse with this snippet in than without (the clock is turned on
> > after
> > >> this snippet executes). If I comment out this snippet from the code,
> > >> it suddenly runs 4 to 8 times faster. The fact that I can comment it
> > >> out means that it is not used in the test, so it is bizzare that it
> > >> slows it down.
>
> > >> We can't reproduce the slow down in a clean example though. I hope
> > >> something clicks for somebody and gives me a hint as to what is
> > going
> > >> on. Tomorrow I'll continue on trying to minimize the code that is
> > >> being slowed down, and hopefully come up with some decent repro.
> > >> _______________________________________________
> > >> Users mailing list
> > >> [email protected]
> > >>http://lists.ironpython.com/listinfo.cgi/users-ironpython.com
> > > _______________________________________________
> > > Users mailing list
> > > [email protected]
> > >http://lists.ironpython.com/listinfo.cgi/users-ironpython.com
>
> > _______________________________________________
> > Users mailing list
> > [email protected]
> >http://lists.ironpython.com/listinfo.cgi/users-ironpython.com
>
> _______________________________________________
> Users mailing list
> [email protected]http://lists.ironpython.com/listinfo.cgi/users-ironpython.com
_______________________________________________
Users mailing list
[email protected]
http://lists.ironpython.com/listinfo.cgi/users-ironpython.com

Reply via email to