Hi,
I have noticed the following method always adds a jitted method (looking at
the ".NET CLR Jit" performance counter) when it is run:
def f():
d = defaultdict(int)
d[0]
I created my own implementation of defaultdict (in ipy):
class defaultdict(dict):
def __init__(self, cls):
super(defaultdict, self).__init__()
self.cls = cls
def __getitem__(self, key):
if key not in self:
self[key] = self.cls()
return super(defaultdict, self).__getitem__(key)
And I noticed that it does not leak JIT and it works 200 times faster when
running the method f().
Can you please look why this happens in the current implementation?
Also I was wondering if there are any other utility methods that use similar
code and probably will have the same problem.
Thanks,
Idan zalzberg
_______________________________________________
Users mailing list
[email protected]
http://lists.ironpython.com/listinfo.cgi/users-ironpython.com