Alright, trying 10,000 warmup requests, and then 100 benchmark requests,
"production" scenario (gunicorn, one worker, no debug):
PyPy3 26.956 [ms]
CPython 3.4 10.822 [ms]
So, not much improvement there. Also consider the slight inconvenience
of mandatory manual warmup every deploy:
* would I need to warm up just the site, every application, or every
template?
* I'd need a prepared session to warm up anything except the login page
* I'll be running more worker processes, so even more warmup requests,
hopefully they'd get distributed evenly amongst the workers
On 07.02.2015 07:56, Omer Katz wrote:
You need to warm up the JIT first.
Run the benchmark a 10,000 times on PyPy before measuring and you'll
see the real performance improvement.
Nevertheless, it does sound like you're hitting a performance bug(s)
somewhere. It's worth investigating.
2015-02-07 1:12 GMT+02:00 Tin Tvrtković <tinches...@gmail.com
<mailto:tinches...@gmail.com>>:
Hello, PyPy folks!
While trying to speed up one of my Django sites, I noticed a new
version of PyPy
had just been released. So I grabbed a fresh download of PyPy 3
(since this is
a Python 3 codebase) and tried taking it out for a spin.
However, as far as I can see, whatever I try PyPy is consistently
slower than
CPython for this.
Since this is a proprietary site, I've basically ripped out all
the code except
my settings.py and my requirements; and am benchmarking the Django
admin index.
The results are about the same.
I've set up a small repo that can be used to reproduce the
environment:
https://github.com/Tinche/PyPy-Django-Playground. There's
additional info in
the README there.
These tests have been carried out on Ubuntu Trusty, 64-bit.
CPython 3 is the
system Python, 3.4. PyPy has been downloaded from the official
site and
unzipped.
So what I basically do is set up an admin session, and use the
Django main admin
page. 200 warmup requests, then 100 benchmarked requests, look at
the mean
request time.
Some results:
Django's runserver, DEBUG mode:
PyPy3 485.389 [ms]
CPython 3.4 105.777 [ms]
Django's runserver, no debug:
PyPy3 44.661 [ms]
CPython 3.4 18.697 [ms]
Gunicorn, 1 worker, no debug:
PyPy3 28.615 [ms]
CPython 3.4 13.532 [ms]
I don't exactly claim to be an expert on benchmarking, but
assuming my site
is similar to the Django admin, CPython's gonna be giving me
better performance.
Also the debug runserver performance is kinda worrying. Nobody's
going to be
running this in production, but it makes development a little
slower and more
annoying than it should be.
Is there anything to make PyPy more competitive in these kinds of
scenarios?
Kind regards,
Tin
_______________________________________________
pypy-dev mailing list
pypy-dev@python.org <mailto:pypy-dev@python.org>
https://mail.python.org/mailman/listinfo/pypy-dev
_______________________________________________
pypy-dev mailing list
pypy-dev@python.org
https://mail.python.org/mailman/listinfo/pypy-dev