Kompilator Pyston-lite JIT obsługuje teraz język Python 3.10

Dostępna jest nowa wersja rozszerzenia Pyston-lite, które implementuje kompilator JIT dla CPython. W przeciwieństwie do projektu Pyston, który jest rozwijany oddzielnie jako rozwidlenie bazy kodu CPython, Pyston-lite został zaprojektowany jako uniwersalne rozszerzenie przeznaczone do połączenia ze standardowym interpreterem Pythona (CPython). Nowa wersja wyróżnia się obsługą gałęzi Pythona 3.7, 3.9 i 3.10, oprócz wcześniej obsługiwanej gałęzi 3.8.

Pyston-lite umożliwia korzystanie z podstawowych technologii Pyston bez zmiany interpretera, poprzez instalację dodatkowego rozszerzenia za pomocą menedżera pakietów PIP lub Conda. Pyston-lite jest już hostowany w repozytoriach PyPI i Conda i aby go zainstalować, wystarczy uruchomić polecenie „pip install pyston_lite_autoload” lub „conda install pyston_lite_autoload -c pyston”. Oferowane są dwa pakiety: pyston_lite (bezpośrednio JIT) i pyston_lite_autoload (wykonuje automatyczne podstawienie JIT po uruchomieniu procesu Pythona). Możliwe jest również programowe kontrolowanie włączenia JIT z aplikacji bez instalowania modułu autoload, za pomocą funkcji pyston_lite.enable().

Ponadto twórcy ogłosili, że obecnie rozważają Pyston-lite jako swój podstawowy produkt. Zwykły Pyston pozwala na wyższą wydajność, jednak jego użycie utrudnia konieczność wymiany interpretera, natomiast Pyston-lite można łatwo zintegrować z istniejącymi konfiguracjami. Konkretne optymalizacje obecne w Pyston zostaną, jeśli to możliwe, przeniesione do głównej kompozycji CPythona. W dłuższej perspektywie istnieje chęć przeniesienia implementacji kompilatora JIT na główną strukturę CPythona.

W swojej obecnej formie, w porównaniu do CPython 3.8, użycie Pyston-lite może poprawić wydajność o 10% w tekście makrobenchmarków i o 28% w teście wydajności py. Dla porównania wzrost wydajności przy użyciu samodzielnego Pystona wynosi odpowiednio 28% i 65%.

Nadchodzące wydanie głównego projektu CPython 3.11 zawiera zmiany związane z buforowaniem stanu kodu bajtowego, szybszymi wywołaniami funkcji i wykorzystaniem szybkich interpreterów dla typowych operacji, a także pewne optymalizacje przygotowane przez projekty Cinder i HotPy. W rezultacie CPython 3.11rc2 w powyższych testach wykazuje wzrost wydajności o 12% i 26%, co jest porównywalne z wydajnością Pyston-lite (nowy CPython i Pyston-lite wykorzystują różne optymalizacje; przenoszenie Pyston-lite do CPython 3.11 jeszcze bardziej poprawi wydajność tej gałęzi).

Źródło: opennet.ru

Dodaj komentarz