Capisco che Django, PyPy e Psycopg2 funzionino tutti correttamente insieme, e speed.pypy.org afferma grandi miglioramenti delle prestazioni rispetto a CPython. Ci sono degli aspetti negativi?Svantaggi di eseguire Django con PyPy?
risposta
Supporto libreria. Non tutte le librerie sono compatibili con PyPy.
La soluzione migliore è provare effettivamente a eseguire
pypy manage.py test
e vedere se si rompe. Quindi sai quali dipendenze devono essere allineate.http://reinout.vanrees.org/weblog/2011/06/06/django-and-pypy.html
server web
Non è possibile utilizzare PyPy con Apache. È necessario utilizzare un server web pure-python + nginx. È POSSIBILE ottenerlo working on uwsgi.
PyPy wiki elenca Django come compatibile, ma non fornisce informazioni dettagliate su quanto di Django è stato testato. Non sono a conoscenza di un'importante distribuzione di Django che esegue PyPy anziché CPython. Una domanda migliore è perché vorresti passare a PyPy per un'app Django, specialmente perché Django è stato ampiamente testato e distribuito con CPython.
PyPy è adatto per attività che richiedono un'intensità di calcolo. Di solito le app Web non lo sono. Il benchmark di Django su cui basano i loro numeri di performance è essenzialmente un benchmark di rendering di template che è un compito intensivo della CPU. Questo non è rappresentativo della maggior parte delle app Web in cui il collo della bottiglia tende ad essere I/O. In quanto tale, PyPy potrebbe non velocizzare il tuo sito tanto quanto quei grafici ti portano a credere.
I "server Web sono vincolati all'IO, non preoccuparti di linguaggi lenti" è apparentemente vivo e vegeto. So che il 50% del tempo trascorso nel mio sito web pesante di un database è EFFETTIVAMENTE PYTHON PROCESSING TIME. I modelli hanno bisogno di rendering, i querysets richiedono deepcopying. Gli sviluppatori responsabili dovrebbero cercare miglioramenti delle prestazioni ovunque, non solo nel livello DB. – Thomas
"Questo non è rappresentativo della * maggior * applicazione web in cui il collo della bottiglia tende ad essere I/O." Come sempre è necessario un profilo per capire dove sono i colli di bottiglia. Da nessuna parte questo implica che non ti devi preoccupare di scrivere codice ottimizzato. Gli sviluppatori responsabili ottimizzano i percorsi critici della loro app. Passare a un runtime Python sperimentale basato su un benchmark di rendering dei template è difficilmente responsabile! – CadentOrange
Ho fatto alcuni test di cpython2 vs pypy. I test delle prestazioni vengono eseguiti molto più velocemente con pypy. D'altra parte, le pagine di django con query db sono servite molto più velocemente con cpython. – francescortiz
- 1. PyPy funziona con asyncio?
- 2. Stackless in PyPy e PyPy + greenlet - differenze
- 3. come creare virtualenv con pypy?
- 4. Utilizzo di PyPy per eseguire un programma Python?
- 5. Utilizzando __slots__ sotto PyPy
- 6. È possibile eseguire un kernel pypy nel notebook Jupyter?
- 7. Compilare PyPy to Exe
- 8. installazione zeromq under pypy
- 9. Sviluppare con Django + Celery senza eseguire `celeryd`?
- 10. Eseguire l'applicazione django su apache con uWSGI
- 11. Come eseguire il "bulk update" con Django?
- 12. docker-compose per eseguire django con mongodb
- 13. Come usare PyPy su Windows?
- 14. Svantaggi di cakePHP framework
- 15. Svantaggi di shared_ptr
- 16. Svantaggi di WebFormsMVP?
- 17. PyCharm e Pypy - Riferimento non risolto
- 18. l'utilizzo di memoria pypy cresce per sempre?
- 19. PyPy su Windows 7 x64?
- 20. Come installo PyPy su appveyor?
- 21. Dov'è il GIL in PyPy?
- 22. Come installare PyPy in anaconda
- 23. Quale profilo di memoria PyPy è raccomandato?
- 24. Svantaggi dell'utilizzo di Basic4Android?
- 25. Svantaggi di CouchDB
- 26. Come posso eseguire `syncdb --noinput` di Django con call_command?
- 27. Ottenere Pypy per riconoscere i moduli di terze parti
- 28. Come posso usare pip con pypy installato dal launchpad?
- 29. svantaggi o limitazioni di plv8?
- 30. Come installare/utilizzare cx_Oracle in PyPy
Io uso pypy + gunicorn + django + nginx e funziona come un fascino. –