2013-05-02 16 views

Odpowiedz

31
  1. Obsługa bibliotek. Nie wszystkie biblioteki są kompatybilne z PyPy.

    Najlepiej jest spróbować uruchomić pypy manage.py test i sprawdzić, czy się zepsuł. Wtedy wiesz, które zależności muszą zostać dopasowane.

    http://reinout.vanrees.org/weblog/2011/06/06/django-and-pypy.html

  2. serwerach

    Nie można używać pypy z Apache. Musisz użyć czysto-pythonowego serwera WWW + nginx. Możesz dostać to working on uwsgi.

+16

Używam pypy + gunicorn + django + nginx i działa jak urok. –

8

PyPy wiki podaje listę Django jako zgodną, ​​ale nie zawiera szczegółowych informacji na temat ilości testowanego Django. Nie jestem świadomy żadnego większego wdrożenia Django, które uruchamia PyPy zamiast CPython. Lepsze pytanie brzmi: dlaczego chcesz przełączyć się na PyPy dla aplikacji Django, zwłaszcza że Django zostało szeroko przetestowane i wdrożone w CPython.

PyPy nadaje się do zadań wymagających dużej mocy obliczeniowej. Aplikacje internetowe zazwyczaj nie są. Test porównawczy Django, na którym opierają swoje numery wydajności, jest w zasadzie wzorcem do renderowania szablonu, który jest zadaniem intensywnie obciążającym procesor. Nie jest to reprezentatywne dla większości aplikacji internetowych, w których szyjka butelki jest zwykle wejściem/wyjściem. W związku z tym PyPy może nie przyspieszyć Twojej witryny tak bardzo, jak te wykresy pozwalają ci uwierzyć.

+48

"Webserwery są ograniczone, nie przejmuj się powolnymi językami", a błąd jest prawdopodobnie żywy i dobrze. Wiem, że 50% czasu spędzonego w mojej ciężkiej bazie danych JEST RZECZYWISTYM CZASEM PROCESOWYM PYTHON. Szablony wymagają renderowania, kwerendy wymagają głębszego kopiowania. Odpowiedzialni programiści powinni szukać ulepszeń wydajności wszędzie, nie tylko w warstwie DB. – Thomas

+7

"To nie jest reprezentant * najbardziej * aplikacji internetowych, gdzie szyjka butelki ma tendencję do bycia I/O." Jak zawsze potrzebujesz profilu, aby dowiedzieć się, gdzie znajdują się wąskie gardła. Nigdzie nie oznacza to, że nie musisz się martwić o pisanie zoptymalizowanego kodu. Odpowiedzialni programiści optymalizują krytyczne ścieżki swojej aplikacji. Przejście na eksperymentalne środowisko uruchomieniowe Pythona oparte na benchmarku renderowania szablonów nie jest odpowiedzialne! – CadentOrange

+4

Zrobiłem kilka testów cpython2 vs pypy. Testy wydajności działają znacznie szybciej dzięki programowi pypy. Z drugiej strony, strony django z zapytaniami db, gdzie serwują znacznie szybciej z cpython. – francescortiz