Hi, recently I asked my friends to run my sort of a benchmark on their machines (attached). The goal was to test the speed of different data access in python2 and python3, 32bit and 64bit. One of my friends sent me the pypy results -- the script ran fast as hell! Astounding.
At home I have a 64bit Dell laptop running 32bit Ubuntu 14.04. I downloaded your binary https://bitbucket.org/pypy/pypy/downloads/pypy2-v5.7.0-linux32.tar.bz2 and confirmed my friend's results, wow. I develop a large Django project, that includes a big amount of background data processing. Reads large files, computes, issues much SQL to postgresql via psycopg2, every 5 minutes. Heavily uses memcache daemon between runs. I'd welcome a speedup here very much. So let's give it a try. Installed psycopg2cffi (via pip in virtualenv), set up the paths and ran. The computation printouts were the same, very promising -- taking into account how complicated the project is! The SQL looked right too. My respect on compatiblity! Unfortunately, the time needed to complete was double in comparison CPython 2.7 for exactly the same task. You mention you might have some tips for why it's slow. Are you interested in getting in touch? Although I rather can't share the code and data with you, I'm offering a real world example of significant load that might help Pypy get better. Thank you, -- : Vlada Macek : http://macek.sandbox.cz : +420 608 978 164 : UNIX && Dev || Training : Python, Django : PGP key 97330EBD (Disclaimer: The opinions expressed herein are not necessarily those of my employer, not necessarily mine, and probably not necessary.)
import platform import sys import time try: range = xrange except: pass print(platform.uname()) print(platform.architecture()) print(sys.version) print(sys.maxsize) cnt = 10**8 g = 0 d = {'g': 0} print('\noldstyle') class A: c = 0 def __init__(self): global g, d start = time.time() for _ in range(cnt): x = g ref_delta = time.time() - start print('g get %.2f sec' % (ref_delta, )) start = time.time() for _ in range(cnt): x = d['g'] delta = time.time() - start print('gd get %.2f sec, %.2fx slower' % (delta, delta/float(ref_delta))) start = time.time() self.i = 0 for _ in range(cnt): x = self.i delta = time.time() - start print('is get %.2f sec, %.2fx slower' % (delta, delta/float(ref_delta))) start = time.time() for _ in range(cnt): x = self.c delta = time.time() - start print('cs get %.2f sec, %.2fx slower' % (delta, delta/float(ref_delta))) start = time.time() for _ in range(cnt): x = A.c delta = time.time() - start print('cc get %.2f sec, %.2fx slower' % (delta, delta/float(ref_delta))) print('') start = time.time() for _ in range(cnt): g += 1 ref_delta = time.time() - start print('g incr %.2f sec' % (ref_delta, )) start = time.time() for _ in range(cnt): d['g'] += 1 delta = time.time() - start print('gd incr %.2f sec, %.2fx slower' % (delta, delta/float(ref_delta))) start = time.time() for _ in range(cnt): self.i += 1 delta = time.time() - start print('is incr %.2f sec, %.2fx slower' % (delta, delta/float(ref_delta))) start = time.time() for _ in range(cnt): self.c += 1 delta = time.time() - start print('cs incr %.2f sec, %.2fx slower' % (delta, delta/float(ref_delta))) start = time.time() for _ in range(cnt): A.c += 1 delta = time.time() - start print('cc incr %.2f sec, %.2fx slower' % (delta, delta/float(ref_delta))) A() print('\nnewstyle') class A(object): c = 0 def __init__(self): global g, d start = time.time() for _ in range(cnt): x = g ref_delta = time.time() - start print('g get %.2f sec' % (ref_delta, )) start = time.time() for _ in range(cnt): x = d['g'] delta = time.time() - start print('gd get %.2f sec, %.2fx slower' % (delta, delta/float(ref_delta))) start = time.time() self.i = 0 for _ in range(cnt): x = self.i delta = time.time() - start print('is get %.2f sec, %.2fx slower' % (delta, delta/float(ref_delta))) start = time.time() for _ in range(cnt): x = self.c delta = time.time() - start print('cs get %.2f sec, %.2fx slower' % (delta, delta/float(ref_delta))) start = time.time() for _ in range(cnt): x = A.c delta = time.time() - start print('cc get %.2f sec, %.2fx slower' % (delta, delta/float(ref_delta))) print('') start = time.time() for _ in range(cnt): g += 1 ref_delta = time.time() - start print('g incr %.2f sec' % (ref_delta, )) start = time.time() for _ in range(cnt): d['g'] += 1 delta = time.time() - start print('gd incr %.2f sec, %.2fx slower' % (delta, delta/float(ref_delta))) start = time.time() for _ in range(cnt): self.i += 1 delta = time.time() - start print('is incr %.2f sec, %.2fx slower' % (delta, delta/float(ref_delta))) start = time.time() for _ in range(cnt): self.c += 1 delta = time.time() - start print('cs incr %.2f sec, %.2fx slower' % (delta, delta/float(ref_delta))) start = time.time() for _ in range(cnt): A.c += 1 delta = time.time() - start print('cc incr %.2f sec, %.2fx slower' % (delta, delta/float(ref_delta))) A()
_______________________________________________ pypy-dev mailing list pypy-dev@python.org https://mail.python.org/mailman/listinfo/pypy-dev