Hi, you are right. Union between two sets of objects are slower, since we introduced mechanics to make set operations with primitive types (e.g. ints) faster. The problem was that a fastpath was removed in that process. I readded it. Union/Update with sets of objects should be fast again in the future.
Thank you for figuring that out. Your program was very helpful. Commit: https://bitbucket.org/pypy/pypy/changeset/452bb2805140 Lukas Am 19.06.2012 15:51, schrieb wilk: > Hi, > > I could isolate a piece of my code that show a big regression from 1.8 > to 1.9, event from cpython to 1.9 with operations on set of instances. > On the other side set of integer are faster ! > > Should i open an issue on the bug tracker ? > > > $ python t.py > with instances = 0.02350 > with integers = 0.02825 > > $ pypy-1.8 t.py > with instances = 0.00935 > with integers = 0.02891 > > $ pypy-1.9 t.py > with instances = 0.41753 > with integers = 0.00628 > > pypy-last/bin/pypy t.py > with instances = 0.34686 > with integers = 0.00628 > > > import random > import time > import sys > > class X: > pass > > def bcl(a,b): > for i in range(1000): > a |= b > > x1 = set([X() for i in range(1000)]) > x2 = set([X() for i in range(1000)]) > > start = time.time() > > bcl(x1, x2) > > print "with instances = %.05f" % (time.time()-start) > > x1 = set(range(1000)) > x2 = set(range(1000)) > > start = time.time() > > bcl(x1, x2) > > print "with integers = %.05f" % (time.time()-start) > > >
_______________________________________________ pypy-dev mailing list pypy-dev@python.org http://mail.python.org/mailman/listinfo/pypy-dev