[pypy-issue] Issue #2104: Pypy3 2.4.0 slower than Python 3.4.2 for a function? (pypy/pypy)
TheLoneWolfling .
issues-reply at bitbucket.org
Sun Aug 2 16:59:29 CEST 2015
New issue 2104: Pypy3 2.4.0 slower than Python 3.4.2 for a function?
https://bitbucket.org/pypy/pypy/issues/2104/pypy3-240-slower-than-python-342-for-a
TheLoneWolfling .:
With the following code:
```
#!python
import random, itertools, timeit
def atLeast(a,b,num):
return sum(x==y for x,y in itertools.zip_longest(reversed(bin(a).partition('b')[-1]), reversed(bin(b).partition('b')[-1]), fillvalue='0')) >= num
print(timeit.timeit(stmt='atLeast(a,b,96)', setup='from __main__ import atLeast\nimport random\na=random.getrandbits(128)\nb=random.getrandbits(128)', number=100000))
```
I get the following:
```
C:\>python -V
Python 3.4.2
C:\>pypy -V
Python 3.2.5 (b2091e973da6, Oct 19 2014, 21:25:51)
[PyPy 2.4.0 with MSC v.1500 32 bit]
C:\>python pypyslow.py
3.167215612926586
C:\>pypy.exe pypyslow.py
3.3733670679044403
```
Note that Pypy is actually *slower* at running this function than stock Python is.
(I am aware that this is a really bad way to write this function, however I know PyPy likes to know about performance regressions. Just because this function is bad doesn't necessarily mean that there aren't any other functions that are well-written that exhibit this same problem.)
May be related to #2100.
More information about the pypy-issue
mailing list