Pyston 2 implementacja Pythona z kompilatorem JIT

Po trzyletniej przerwie w rozwoju, opublikowano start projektu Pyston 2, co opracowałemdo wydajnej implementacji języka Python wykorzystanie osiągnięć projektu LLVM.

Implementacja wyróżnia się wykorzystaniem nowoczesnych technologii kompilacji JIT i ma na celu osiągnięcie wysokiej wydajności podobnej do tradycyjnych języków systemowych, takich jak C ++.

Kod z poprzednich wersji przez Pyston był rozpowszechniany na licencji Apache, ale kod Pyston 2 nie jest jeszcze dostępny i wydawane są tylko gotowe do użycia kompilacje dla Ubuntu 18.04 i 20.04 (plik z kodem jest dostępny do pobrania, ale jest tylko stub z informacją, że projekt jest nadal zamknięty) .

Publikacja kodu jest częścią planów programistówale to się stanie po zakończeniu tworzenia modelu biznesowego nowej firmy i zdecydowano się na dalszy rozwój Pystona bez wsparcia finansowego Dropbox.

Informacje o Pyston 2

W przeciwieństwie do poprzednich wersji, Pyston 2 jest oznaczony jako stabilny a nie jako wersja próbna. Zrobiono wiele pracy, aby zoptymalizować wydajność, a Pyston 2 jest teraz szybszy niż oryginalny Python 3.8 o około 20% po przejściu zestawu testów python-macrobenchmarks.

Najbardziej znaczący wzrost wydajności dotyczy nieodłącznych obciążeń aplikacji sieci Web. W oddzielnych testach, takich jak chaos.py i nbody.py, Pyston 2 przewyższa Pythona 3.8 o współczynnik 2. Koszt użycia JIT to niewielki wzrost zużycia pamięci.

Jesteśmy bardzo podekscytowani wydaniem Pyston v2, szybszej i wysoce kompatybilnej implementacji języka programowania Python. Wersja 2 jest o 20% szybsza niż standardowy Python 3.8 w naszych makrobenchmarkach. Co ważniejsze, prawdopodobnie jest szybszy w kodzie. Pyston v2 może obniżyć koszty serwera, zmniejszyć opóźnienia użytkowników i zwiększyć produktywność programistów.

Pyston v2 jest łatwy w implementacji, więc jeśli szukasz lepszej wydajności Pythona, zalecamy poświęcić pięć minut i wypróbować Pyston. Jest to jeden z najłatwiejszych sposobów na przyspieszenie projektu.

Pod względem kompatybilności z rodzimym językiem Python, projektem Pyston jest reklamowany jako najbardziej kompatybilna alternatywna implementacja dla CPythona, ponieważ Pyston jest rozwidleniem głównej bazy kodu CPythona.

Pyston obsługuje wszystkie funkcje CPythona, w tym API C do tworzenia rozszerzeń C. Pyston został pierwotnie opracowany przez Dropbox, który w 2017 roku zdecydował o zaprzestaniu wewnętrznego rozwoju. Na początku 2020 roku najlepsi programiści Pyston założyli swoją firmę, całkowicie zmienili projekt i zaczęli pracować w Pyston na pełny etat.

Szczegóły techniczne dotyczące wypełnienia Pyston 2 nie są jeszcze podane, wymieniono tylko DynASM JIT, buforowanie inline i ogólne optymalizacje CPythona. Poprzednia wersja Pystona korzystała z jednej metody JIT naraz, podobnie jak JIT w nowoczesnych silnikach JavaScript.

W JIT kod Pythona został przeanalizowany i przetłumaczony do reprezentacji pośredniej LLVM (IR, reprezentacja pośrednia). Ponadto reprezentacja IR została przetworzona w optymalizatorze LLVM i przekazana do silnika LLVM JIT w celu wykonania, który przekształcił reprezentację IR w kod maszynowy.

W celu uzyskania informacji o typach zmiennych dla programów w dynamicznym języku Python wykorzystano technikę probabilistycznego przewidywania typów obiektów, a następnie wyjaśniono prawidłowy dobór typu podczas wykonywania.

Dlatego Pyston stale różnicował wykonanie między dwiema gałęziami: szybką, w której przewidywane stawki są potwierdzone, oraz wolną, która jest używana w przypadku niedopasowania typu.

Zadanie można wykonać w trybie wielowątkowym, umożliwiając równoległe wykonywanie kilku wątków kodu w języku Python i wolne od globalnej blokady interpretera (GIL).

W końcu jeśli chcesz dowiedzieć się więcej na ten temat, możesz sprawdzić szczegóły w następujący link.


Treść artykułu jest zgodna z naszymi zasadami etyka redakcyjna. Aby zgłosić błąd, kliknij tutaj.

Bądź pierwszym który skomentuje

Zostaw swój komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

*

*

  1. Odpowiedzialny za dane: Miguel Ángel Gatón
  2. Cel danych: kontrola spamu, zarządzanie komentarzami.
  3. Legitymacja: Twoja zgoda
  4. Przekazywanie danych: Dane nie będą przekazywane stronom trzecim, z wyjątkiem obowiązku prawnego.
  5. Przechowywanie danych: baza danych hostowana przez Occentus Networks (UE)
  6. Prawa: w dowolnym momencie możesz ograniczyć, odzyskać i usunąć swoje dane.