[IronPython] weird performance issue

Kamil Dworakowski kamil at dworakowski.name
Tue Dec 16 20:07:40 CET 2008


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.



More information about the Ironpython-users mailing list