w przeciwieństwie do innych języków programowania, Python kładzie duży nacisk na czytelność kodu. Jego prosta i wyrazista składnia dodatkowo umożliwia programistom dodawanie funkcjonalności do aplikacji bez pisania długiego i złożonego kodu. Ponadto Python jest jednym z najbardziej dynamicznych języków programowania. Programiści mogą zaimplementować Pythona na wiele sposobów. Mają nawet możliwość wyboru spośród kilku implementacji Pythona. Domyślną implementacją języka programowania Python jest CPython.
pomimo tego, że CPython jest napisany w języku programowania C, jest dystrybuowany jako standardowa biblioteka Pythona. Kompiluje kod źródłowy Pythona do pośredniego kodu bajtowego. Pośredni bajt kod jest wykonywany przez maszynę wirtualną CPython. Wielu programistów decyduje się na CPython ze względu na jego kompatybilność z szeroką gamą pakietów Pythona i modułów rozszerzeń C. Ale kompilacja CPython sprawia, że Python jest wolniejszy niż różne skompilowane języki programowania i wymaga dodatkowych zasobów serwera.
dlatego wielu programistów wybiera alternatywną implementację Pythona, aby zwiększyć szybkość wykonywania kodu. Mają nawet możliwość wyboru jednej z kilku alternatyw dla CPython-Jython, IronPython, Cython, PyPy i CLPython. Jednak duży odsetek programistów Pythona woli PyPy od innych implementacji ze względu na jego optymalną wydajność i szybkość. W przeciwieństwie do innych implementacji, PyPy jest napisany w języku programowania Python. Używa nawet interpretera, który jest napisany w podzbiorze języka programowania Python-Rpython.
PyPy drastycznie zwiększa szybkość wykonywania kodu Pythona poprzez kompilację just-in-time (JIT). Wykorzystuje metody kompilacji JIT w celu zwiększenia wydajności i wydajności systemu interpretera. Kompilator JIT dodatkowo sprawia, że PyPy uruchamia zarówno krótkie, jak i długie programy Pythona znacznie szybciej niż podobne implementacje. Kilka badań sugeruje nawet, że PyPy jest około 7,5 razy szybszy niż CPython. Każda nowa wersja PyPy dodatkowo ma lepszą wydajność i wykonuje programy Pythona szybciej niż jego poprzednik.
dlaczego programiści wolą PyPy od innych implementacji Pythona?
Kompilacja JIT
PyPy ma na celu optymalizację szybkości wykonywania każdego programu Pythona. Jest wyposażony we wbudowany kompilator JIT. Używa nawet metod kompilacji JIT do wykonywania zarówno prostych, jak i dużych programów Pythona szybciej niż domyślna implementacja Pythona. Dlatego wielu programistów decyduje się na PyPy, aby szybciej uruchamiać duże i złożone aplikacje Pythona.
zmniejszone zużycie pamięci
oprócz zwiększenia czasu wykonywania kodu, PyPy sprawia, że programy Pythona zużywają mniej pamięci. Jednak spadek wykorzystania pamięci może się różnić w zależności od programu. Ale PyPy nadal sprawia, że programy Pythona zużywają mniej pamięci niż CPython.
Obsługa Pythona bez stosu
PyPy dodatkowo obsługuje ulepszoną wersję języka programowania Python — Stackless Python. Python bez stosu jest wykonywany wydajniej niż Python w programach opartych na wątkach. Pomaga nawet programistom uniknąć niektórych problemów ze złożonością i wydajnością związanych z konwencjonalnymi wątkami. Podczas korzystania z PyPy programiści mogą nawet przyspieszyć aplikacje, pisząc kod w stylu współbieżnym.
inne podejście do Sandboxingu
PyPy przyjmuje również podejście sandboxingu, które umożliwia programistom wydajniejsze uruchamianie niezaufanych programów Pythona. Podejście sandboxingu nie wymaga od programistów ograniczenia użycia funkcji języka, które są uważane za niebezpieczne. Zamiast tego zastępuje wywołanie wykonane z programu Python do zewnętrznych bibliotek za pomocą fragmentu. Stub współpracuje z bibliotekami innych firm w oparciu o zasady obsługi procesów. Jednak podejście sandboxingu jest nadal działającym prototypem.
Ogólnie Rzecz Biorąc, PyPy jest znacznie szybszy niż inne implementacje Pythona. Jak podkreślono w kilku badaniach, jest około 7,5 razy szybszy niż CPython. Ponadto każda nowa wersja PyPy ma lepszą wydajność. Ale czas wykonania może się różnić w zależności od programu. Według konkretnych badań, PyPy wykonuje czysty kod Pythona znacznie szybciej programy wywołujące funkcje kodowane w C. Dlatego programiści Pythona muszą pamiętać o zaletach i wadach PyPy, aby zoptymalizować szybkość wykonywania kodu Pythona.